プロジェクトでの作業
uvは、pyproject.tomlファイルに依存関係を定義するPythonプロジェクトの管理をサポートしています。
新しいプロジェクトの作成
uv initコマンドを使用して新しいPythonプロジェクトを作成できます:
または、作業ディレクトリでプロジェクトを初期化することもできます:
uvは次のファイルを作成します:
hello.pyファイルには、シンプルな「Hello world」プログラムが含まれています。uv runで試してみてください:
プロジェクト構造
プロジェクトは、いくつかの重要な部分で構成されており、これらが連携してuvがプロジェクトを管理できるようにします。
uv initによって作成されたファイルに加えて、uvはプロジェクトコマンド(例:uv run、uv sync、uv lock)を初めて実行するときに、プロジェクトのルートに仮想環境とuv.lockファイルを作成します。
完全なリストは次のようになります:
.
├── .venv
│ ├── bin
│ ├── lib
│ └── pyvenv.cfg
├── .python-version
├── README.md
├── hello.py
├── pyproject.toml
└── uv.lock
pyproject.toml
pyproject.tomlには、プロジェクトに関するメタデータが含まれています:
[project]
name = "hello-world"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
dependencies = []
このファイルを使用して依存関係を指定し、プロジェクトの詳細(例:説明やライセンス)を指定します。このファイルは手動で編集することも、uv addやuv removeなどのコマンドを使用してターミナルからプロジェクトを管理することもできます。
Tip
pyproject.toml形式の詳細については、公式のpyproject.tomlガイドを参照してください。
また、このファイルを使用して、[tool.uv]セクションでuvの設定オプションを指定します。
.python-version
.python-versionファイルには、プロジェクトのデフォルトのPythonバージョンが含まれています。このファイルは、プロジェクトの仮想環境を作成するときにuvが使用するPythonバージョンを指定します。
.venv
.venvフォルダーには、プロジェクトの仮想環境が含まれています。これは、システムの他の部分から分離されたPython環境です。uvはここにプロジェクトの依存関係をインストールします。
詳細については、プロジェクト環境のドキュメントを参照してください。
uv.lock
uv.lockは、プロジェクトの依存関係に関する正確な情報を含むクロスプラットフォームのロックファイルです。pyproject.tomlがプロジェクトの広範な要件を指定するのに対し、ロックファイルにはプロジェクト環境にインストールされる正確な解決バージョンが含まれています。このファイルはバージョン管理にチェックインする必要があり、マシン間で一貫性のある再現可能なインストールを可能にします。
uv.lockは人間が読めるTOMLファイルですが、uvによって管理されるため手動で編集しないでください。
詳細については、ロックファイルのドキュメントを参照してください。
依存関係の管理
uv addコマンドを使用して、pyproject.tomlに依存関係を追加できます。これにより、ロックファイルとプロジェクト環境も更新されます:
バージョン制約や代替ソースを指定することもできます:
$ # バージョン制約を指定する
$ uv add 'requests==2.31.0'
$ # Git依存関係を追加する
$ uv add git+https://github.com/psf/requests
パッケージを削除するには、uv removeを使用します:
パッケージをアップグレードするには、--upgrade-packageフラグを使用してuv lockを実行します:
--upgrade-packageフラグは、ロックファイルの他の部分をそのままにして、指定されたパッケージを最新の互換バージョンに更新しようとします。
詳細については、依存関係の管理のドキュメントを参照してください。
コマンドの実行
uv runを使用して、プロジェクト環境で任意のスクリプトやコマンドを実行できます。
uv runの呼び出しの前に、uvはpyproject.tomlとロックファイルが最新であること、および環境がロックファイルと最新であることを確認し、手動の介入なしでプロジェクトを同期状態に保ちます。uv runは、コマンドが一貫性のあるロックされた環境で実行されることを保証します。
例えば、flaskを使用するには:
または、スクリプトを実行するには:
または、uv syncを使用して環境を手動で更新し、コマンドを実行する前にアクティブ化します:
Note
プロジェクトでuv runを使用せずにスクリプトやコマンドを実行するには、仮想環境がアクティブである必要があります。仮想環境のアクティベーションは、シェルやプラットフォームによって異なります。
詳細については、プロジェクトでのコマンドの実行およびスクリプトの実行のドキュメントを参照してください。
配布物のビルド
uv buildを使用して、プロジェクトのソースディストリビューションおよびバイナリディストリビューション(ホイール)をビルドできます。
デフォルトでは、uv buildは現在のディレクトリでプロジェクトをビルドし、ビルドされたアーティファクトをdist/サブディレクトリに配置します:
詳細については、プロジェクトのビルドのドキュメントを参照してください。
次のステップ
uvでのプロジェクト作業の詳細については、プロジェクトの概念ページおよびコマンドリファレンスを参照してください。
または、プロジェクトをパッケージとして公開する方法を学んでください。