Python versions#
Pythonバージョンは、Pythonインタプリタ(つまりpython実行可能ファイル)、標準ライブラリ、その他のサポートファイルで構成されています。
Managed and system Python installations#
システムに既存のPythonがインストールされていることは一般的であるため、uvはdiscoveringPythonバージョンをサポートします。ただし、uvはinstalling Python versions自体もサポートします。これら2つのタイプのPythonインストールを区別するために、uvは_managed_PythonインストールとしてインストールされるPythonバージョンと、_system_Pythonインストールとしてインストールされる他のすべてのPythonバージョンを参照します。
Note
uvは、オペレーティングシステムによってインストールされたPythonバージョンと、他のツールによってインストールおよび管理されているPythonバージョンを区別しません。たとえば、Pythonインストールがpyenvで管理されている場合、uvでは_system_Pythonバージョンと見なされます。
Requesting a version#
ほとんどのuvコマンドでは、--pythonフラグを使用して特定のPythonバージョンを要求できます。たとえば、仮想環境を作成する場合は、次のようになります。
uvは、Python 3.11.6が利用可能であることを確認し(必要に応じてダウンロードしてインストールし)、それを使用して仮想環境を作成します
次のPythonバージョンをリクエストするためのフォーマットがサポートされています。
<version>例:3,3.12,3.12.3<version-specifier>例:>=3.12,<3.13<implementation>例:cpythonorcp<implementation>@<version>例:cpython@3.12<implementation><version>例:cpython3.12orcp312<implementation><version-specifier>例:cpython>=3.12,<3.13<implementation>-<version>-<os>-<arch>-<libc>例:cpython-3.12.3-macos-aarch64-none
さらに、特定のシステムPythonインタプリタを次のように要求することもできます。:
<executable-path>e.g./opt/homebrew/bin/python3<executable-name>e.g.mypython3<install-dir>e.g./some/environment/
デフォルトでは、システム上にPythonバージョンが見つからない場合、uvは自動的にダウンロードします。この動作は、python-downloadsオプションで無効にすることができます。
Installing a Python version#
uvには、macOS、Linux、Windows用のダウンロード可能なCPythonおよびPyPyディストリビューションのリストがバンドルされています。
Tip
デフォルトでは、Pythonバージョンはuv python installを使用せずに必要に応じて自動的にダウンロードされます。
Pythonバージョンを特定のバージョンにインストールするには:
最新のパッチ・バージョンをインストールするには:
制約を満たすバージョンをインストールするには:
複数のバージョンをインストールするには:
特定の実装をインストールするには:
ファイルパスなどのローカルインタプリタの要求に使用される形式を除き、すべてのPython version request形式がサポートされています。
Project Python versions#
デフォルトでは、uv python installは管理されたPythonバージョンがインストールされていることを確認するか、最新バージョンをインストールします。
あるいは、複数のPythonバージョンを必要とするプロジェクトで.python-versionsファイルを定義することもできます。存在する場合、uvは
あるいは、複数のPythonバージョンを必要とするプロジェクトで.python-versionsファイルを定義することもできます。存在する場合、uvはファイルにリストされているすべてのPythonバージョンをインストールします。このファイルは.python-versionファイルよりも優先されます。
uvは、プロジェクトコマンドの呼び出し時にpyproject.tomlファイルで定義されたPythonの要件も考慮します。
Viewing available Python versions#
インストールされているPythonバージョンと使用可能なPythonバージョンをリストするには:
デフォルトでは、他のプラットフォームや古いパッチバージョンのダウンロードは表示されません。
すべてのバージョンを表示するには:
他のプラットフォームのPythonバージョンを表示するには:
ダウンロードを除外し、インストールされているPythonバージョンのみを表示するには:
Discovery of Python versions#
Pythonバージョンを検索する場合、次の場所がチェックされます。:
-UV_PYTHON_INSTALL_DIRでPythonのインストールを管理します。
- python、python3、またはpython3.x(macOSとLinuxの場合)、またはpython.exe(Windowsの場合)としてPATH上のPythonインタプリタ。
- Windowsでは、要求されたバージョンに一致するpy--list-pathsによって返されるPythonインタプリタ。
場合によっては、uvによって仮想環境からPythonバージョンを使用できるようになります。この場合、前述のように、インストールを検索する前に、仮想環境のインタプリタが要求との互換性をチェックされます。詳細については、pip-compatible virtual environment discoveryのドキュメントを参照してください。
検出を実行する場合、実行可能でないファイルは無視されます。検出された各実行可能ファイルは、requested Python versionを満たすことを確認するためにメタデータが照会されます。照会が失敗した場合、実行可能ファイルはスキップされます。実行可能ファイルが要求を満たす場合、追加の実行可能ファイルを検査せずに使用されます。
マネージドPythonバージョンを検索する場合、uvは新しいバージョンを優先します。システムPythonバージョンを検索する場合、uvは最新バージョンではなく、最初の互換性のあるバージョンを使用します。
システム上にPythonのバージョンが見つからない場合、uvは互換性のある管理されたPythonバージョンのダウンロードをチェックします。
Disabling automatic Python downloads#
デフォルトでは、uvは必要に応じて自動的にPythonバージョンをダウンロードします。
python-downloadsオプションを使用して、この動作を無効にすることができます。デフォルトではautomaticに設定されていますが、uv python install中にPythonのダウンロードのみを許可するにはmanualに設定します。
Adjusting Python version preferences#
デフォルトでは、uvはシステム上にあるPythonバージョンの使用を試み、必要な場合にのみ管理対象インタプリタをダウンロードします。
python-preferenceオプションを使用して、この動作を調整できます。デフォルトではmanagedに設定されており、システムPythonインストールよりもマネージドPythonインストールが優先されます。ただし、システムPythonインストールの方が、マネージドPythonバージョンをダウンロードするよりも優先されます。
次の代替オプションを使用できます。
only-managed:管理されたPythonインストールのみを使用し、システムPythonインストールは使用しません。system:管理されたPythonインストールよりもシステムPythonインストールを優先します。only-system:システムPythonインストールのみを使用し、管理されたPythonインストールは使用しません。
これらのオプションを使用すると、uvのマネージドPythonバージョンを完全に無効にしたり、常に使用して既存のシステムインストールを無視したりすることができます。
Note
Pythonバージョンの自動ダウンロードは、プリファレンスを変更せずにdisabledにすることができます。
Python implementation support#
uvは、CPython、PyPy、およびGraalPyのPython実装をサポートしています。Python実装がサポートされていない場合、uvはインタプリタの検出に失敗します。
実装は、長い名前または短い名前のいずれかで要求できます。:
- CPython:
cpython,cp - PyPy:
pypy,pp - GraalPy:
graalpy,gp
実装名の要求では、大文字と小文字は区別されません。
See the Python version request documentation for more details on the
サポートされているフォーマットの詳細については、Python version requestのドキュメントを参照してください
Managed Python distributions#
uvは、CPythonおよびPyPyディストリビューションのダウンロードとインストールをサポートしています。
CPython distributions#
Pythonは公式に配布可能なCPythonバイナリを公開しておらず、uvはpython-build-standaloneプロジェクトからのサードパーティのスタンドアロンディストリビューションを使用しています。このプロジェクトは部分的にuvメンテナによって維持されており、他の多くのPythonプロジェクトでも使用されています。
uv Pythonディストリビューションは自己完結型で、移植性が高く、パフォーマンスに優れています。Pythonはpyenvのようなツールのようにソースから構築できますが、事前にインストールされたシステム依存関係を必要とし、最適化されたパフォーマンスの高いビルドを作成するのは非常に時間がかかります。
python-build-standalone quirks
documentation for details.
これらのディストリビューションには、一般的に移植性の結果として、いくつかの動作上の癖があります。詳細については、python-build-standalone quirksのドキュメントを参照してください。
PyPy distributions#
PyPyディストリビューションはPyPyプロジェクトによって提供されています。