Rust製のPythonパッケージ管理ツール「uv」を使ってみよう
https://gihyo.jp/article/2024/03/monthly-python-2403
#Python_Monthly_Topics
本記事でいう「仮想環境」とは、(略)、プロジェクトごとにパッケージのインストール先を分離することで管理を容易にするための仕組みを指します。
「パッケージ管理ツール」、(知られたものを)一覧にしている
#uv とは
Rustのパッケージマネージャである「Cargo」をPythonにもたらすという意味で、「⁠Cargo for Python」になることを追求しており、高速で信頼性が高いパッケージ管理ツールになることを掲げています。
uvはPythonと依存関係がないため、Python自体とは別にインストールできます。
システムに複数のPythonバージョンが存在していても、それぞれにインストールする必要はありません。
pip install uv
または https://github.com/astral-sh/uv?tab=readme-ov-file#getting-started 参照
curlから入れたら source $HOME/.cargo/env でパスを通す
仮想環境の作成(uv venv)
デフォルトではuvコマンドを実行したディレクトリ内に「.venv」ディレクトリが自動的に作成されます。
uv venv uvenv-test --python /usr/local/bin/python3.11
sourceで有効化(標準ライブラリvenvと同じ)
uv pip list
uvが作成する仮想環境にはpipやsetuptoolsはインストールされません。
uvが提供するpipによってパッケージ管理が行われます。
IMO:Ryeっぽい
uv pip installしている
--no-cache
(IMO:ドキュメントにある?)
IMO:これはpip install互換といえる期待ができる(でも、中でpipを呼ぶ?)
pipとuv pipの違い
pipが持つ機能のすべてを網羅しているわけではないが、必要な機能は備わっている
差分
uv pip install -r pyporject.toml
uv pip sync requirements.txt
パッケージ間の依存関係解決についてはPython標準のpipと動作が異なる場合がある
👉Compatibility with pip and pip-tools (uv docs)