😎

uv 0.4によるPython環境構築

2024/10/04に公開

こんにちは。この度、開発マシンを新しくしたため、数年ぶりにPython環境を1から構築する機会がありました。個人開発での利用がメインなので、pyenv+pipというシンプルな組み合わせでもともと利用していました。最近のベストプラクティスは何なんだろうと調べていくうちに、ちょうど2024年8月にあったuv 0.3.0のリリースから、プロジェクト管理ツールの機能が加わってきたことで、uvが熱いという流れがありそうです。

折角なので、uvだけを使って新しくPython環境構築をしてみました。

uvとは

Ultra violetではないようです。Rustで開発されたPythonにおけるプロジェクト管理・ツール管理・ランタイム管理・パッケージ管理を全部詰め込んだ上で、従来のツールよりも動作が高速という新しいツールのようです。

https://docs.astral.sh/uv/

2024年10月現在ではversion 0.4ですが、毎週のように新しいリリースがでており、非常にアクティブに開発されている模様です。

構築環境

  • Ubuntu 24.04 LTS

インストール

https://docs.astral.sh/uv/getting-started/installation/

curl -LsSf https://astral.sh/uv/install.sh | sh

exec $SHELL -lを用いてシェルの再読込が必要。再読込をすると、バージョンを確認できるようになる。

uv --version
> uv 0.4.18

環境構築

uv python install

このコマンドで自動的に最新のPythonバージョンをインストールできます。

uv python install 3.12

このようにバージョン指定も可能。

Pythonのインストールも非常に高速でした。

どうやら、pyenvはPythonのソースコードからビルドしているけれども、uvはビルド済みの3rd partyバイナリを利用しているため、ビルドの時間がかからないらしい。
https://docs.astral.sh/uv/guides/install-python/

https://github.com/indygreg/python-build-standalone

プロジェクトの作成

uv init [project_name]

[project_name]をいれると、自動でディレクトリをHome配下に作ってくれる。

仮想環境

最初の仮想環境の立ち上げ

uv venv

仮想環境のアクティベート

source .venv/bin/activate

作成したプロジェクト内に.venvが作成されて、プロジェクトの仮想環境が立ち上がる。仮想環境を最初に立ち上げないと、パッケージのインストールなどもできないです。

パッケージ追加

uv pip install pandas

試しにPandasを追加してみました。たしかに体感でわかるくらい爆速でインストールが終わる。

一旦ここまで

そもそも、あまり凝ったことをする必要はなかったので、パッケージ追加までできれば個人的には動かせそう。また何か使うようになったら追記します。

Discussion