Python にはどういうわけかパッケージ マネージャーが多すぎます。もちろん、これには明らかな理由があります。それは、組み込みのパッケージ マネージャーである pip の機能が不足しているためです。しかし、それでもなお、内なる完璧主義者はすぐに使えるシンプルな解決策を望んでいます。 Python をインストールすると、すぐに高速で便利なパッケージ マネージャー、できれば Python バージョン マネージャーが使用できるようになります。しかし、代わりにpipが得られます。もちろん実際に使っている人もいますが、それでも詩、pdm、conda、pipenv、少なくとも pip-tools の方がはるかに便利です。
そうですね、詩は誰にとっても良いようですね。私自身もほとんどのプロジェクトでそれを使用しています。ただし、依存関係のインストールは、特に Docker コンテナーを再構築する場合に遅く感じられ始めます。さらに、詩自体をインストールしたり、Python のバージョンを変更したりするのは面倒です。たとえば、pyenv を通じてバージョンを変更すると、環境を再作成しようとすると詩でエラーが発生します。ただし、Python のさまざまなバージョンで動作できることが想定されています。もちろん、これはインタプリタへのフルパスを指定することで簡単に解決できますが、それでも難題です。同じ pyenv をインストールし、通常はそれを使用します。そして、Python のバージョンを制御するものはこれ以上ないようです。
そして、2 月に、Ruff の作成者から興味深い解決策が登場しました。 Rast で書かれた UV パッケージ マネージャー。もちろん純粋にコンソールベースであり、その構文は詩を非常に彷彿とさせます。機能の点では、これらはほぼ同じですが、多くの利点があり、数倍高速です。このドキュメントには、同じ依存関係セットのインストール時間の図が示されています。
構文は詩に非常に似ています。たとえば、プロジェクトは次のように作成されます (ディレクトリに直接移動します):
uv init project cd project
次の構造があります:
project ├── .python-version ├── hello.py ├── pyproject.toml └── README.md
詩などの依存関係は pyproject.toml 設定に保存され、Python のバージョンは .python-version に保存されます。
仮想環境を作成しましょう:
uv venv
以下に応じて SQLAlchemy を追加します。
uv add sqlalchemy
または、特定のバージョンを追加することもできます:
uv add sqlalchemy@2.0.32
次に削除しましょう:
uv remove sqlalchemy
今度は Sugar - Python のバージョン管理です。 3.11.9をインストールしてインタープリタが使える環境を構築しましょう。
uv python install 3.11.9 uv venv --python 3.11.9
Python のバージョンは .python-version に保存されます。UV がパッケージ マネージャーであるため、インタープリターを変更するたびにこれをパッケージ マネージャーに指示する必要はありません。さらに、バージョンを手動でインストールする必要さえありませんが、目的のバージョンで環境をすぐに作成します。インストールされていない場合は、UV 自体がそれをプルします。つまり、それについて考える必要はありません。まったく - まあ、それはスリルです。
詩と同様に、PyPI でパッケージを構築して公開する機能があります。次の 2 つのコマンドを使用して、コンテナを構築し、パッケージを公開できます。
uv build uv publish
UV をスーパーバイザーとして使用し、uv run を使用してスクリプトやアプリケーションを実行することもできます
そして、一番重要なのは Docker イメージです。
FROM ghcr.io/astral-sh/uv:python3.12 WORKDIR /app RUN uv venv CMD ["run", "app"]
Python イメージをプルして、pip 経由でそこに UV をインストールする必要はありません。すぐに UV イメージをプルして楽しむことができます。さらに、他にもたくさんのトリックがありますが、ドックでのこれについては (ちなみに、これは非常に明確です) - ドックでこれらのチップが必要な人は、ドックに入るのを恐れることはありません。
一般的に、非常に便利なツールであり、詩の優れた代替品です。まだどの IDE でも UV がサポートされていませんが、それは時間の問題です。機能がたくさんあるのは素晴らしいことなので、プロジェクトが発展してほしいと思っています。この投稿を共有し、使用しているものを書いてください。
追伸そして、TGC を満喫する必要があります: https://t.me/dmkjfss
以上が詩の代替としての UVの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。