- パフォーマンスやPythonとの互換性は、uvの差別化要因ではない。uvはPEPに準拠しており、Pythonのパッケージマネージャーとして十分に推奨できる。しかし、最も驚くべき機能は別にある。
- Python 3.12でアドホックなスクリプティングをするとき、しばしばPandasのような依存関係を追加する必要がある。一般的な方法は次のとおり。
pip install pandas を実行してグローバル環境を変更する、または
- 仮想環境を作成し、
pip install pandas を実行し、仮想環境を有効化してからPythonを実行する。
- 別のPythonバージョンが必要な場合は、
pyenv を使ってそのバージョンをインストールし、ローカルに設定する必要がある。最悪の場合:
pyenv install 3.12
pyenv local 3.12
python -m venv .venv
source .venv/bin/activate
pip install pandas
python
- uvを使えば、たった1行のコマンドで済む。
uv run --python 3.12 --with pandas python
- 覚えやすく、痕跡も残らない。楽しいスクリプティングを!
5件のコメント
まだ poetry を使っていますが、そろそろ移行してみるべきですね。virtualenv wrapper にもさよならでしょう。
そろそろ本当に
pipを手放す時期かもしれませんねuvは、initするたびに不要なものがあれこれ付いてくる点を除けば、全体的に満足しながら便利に使っていますUv - Rustで実装された超高速Pythonパッケージングツール
Hacker Newsの意見
uvパッケージマネージャーをとても気に入っており、コミュニティの標準として定着してほしいという意見がある。特に新しいユーザーに勧めやすいツールである
uvはPEP 723のインラインスクリプト依存関係をサポートしており、よりすっきりと使える
NodeJS開発者として、Pythonの環境設定の問題がいまだに解決されていないことに驚く。Nodeも完璧ではないが、グローバル環境の変更を心配することはない
virtualenvの有効化は不要で、pyenvのインタープリタ設定がなくても直接仮想環境を作成できる
uvでは単一ツールの実行に複数の機能がまとまっているのが不便だという意見がある。venvを有効化して複数回プログラムを実行できるほうが便利である
uvはuvxコマンドを含み、Pythonスクリプトを手動インストールなしで実行できる
uvx --from 'huggingface_hub[cli]' huggingface-cliuvを気に入っており近いうちに使ってみたいが、記事の要点が理解できないという意見がある。pyenvとpoetryでもローカル依存関係を持てる
他のバイナリ依存関係がある場合は、Nixとvirtualenv + pip-toolsを使うほうがより良い選択肢かもしれない
まず「正しいパス」で仮想環境を有効化してからpandasをインストールすべきだという意見がある