以下の内容はhttps://rriifftt.hatenablog.com/entry/2025/05/14/150322より取得しました。


WSL2 (Ubuntu 24.04) で uv を使う

はじめに

pyenv venv pip をひとまとめにして高速と噂の uv を使ってみます。
Rust で実装されているようです。
https://docs.astral.sh/uv/

環境は Widowns 11 + WSL2 + Ubuntu 24.04 です。

uv という名前の由来はたびたび話題になっているようでした。

uv のインストール

https://docs.astral.sh/uv/getting-started/installation/ を参考にインストールします。

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

バージョンは以下です。

$ uv --version
uv 0.7.3

uv は ${HOME}/.local/bin/uv にインストールされるため、必要に応じて PATH を通します。

Python のインストール

uv は pyenv のように複数バージョンの Python をインストールできます。
https://docs.astral.sh/uv/getting-started/features/#python-versions

uv python list でインストール済み、及びインストール可能な Python のバージョンを確認できます。

cpython-3.14.0a6-linux-x86_64-gnu                 <download available>
cpython-3.14.0a6+freethreaded-linux-x86_64-gnu    <download available>
cpython-3.13.3-linux-x86_64-gnu                   ${HOME}/.local/share/uv/python/cpython-3.13.3-linux-x86_64-gnu/bin/python3.13
cpython-3.13.3+freethreaded-linux-x86_64-gnu      <download available>
cpython-3.12.10-linux-x86_64-gnu                  <download available>
cpython-3.12.3-linux-x86_64-gnu                   /usr/bin/python3.12
cpython-3.12.3-linux-x86_64-gnu                   /usr/bin/python3 -> python3.12
cpython-3.11.12-linux-x86_64-gnu                  <download available>
cpython-3.10.17-linux-x86_64-gnu                  <download available>
cpython-3.9.22-linux-x86_64-gnu                   <download available>
cpython-3.8.20-linux-x86_64-gnu                   <download available>
pypy-3.11.11-linux-x86_64-gnu                     <download available>
pypy-3.10.16-linux-x86_64-gnu                     <download available>
pypy-3.9.19-linux-x86_64-gnu                      <download available>
pypy-3.8.16-linux-x86_64-gnu                      <download available>
graalpy-3.11.0-linux-x86_64-gnu                   <download available>
graalpy-3.10.0-linux-x86_64-gnu                   <download available>
graalpy-3.8.5-linux-x86_64-gnu                    <download available>

3.12.10 をインストールしたければ uv python install cpython-3.14.0a6-linux-x86_64-gnu でインストールします。

$ uv python install cpython-3.14.0a6-linux-x86_64-gnu
Installed Python 3.14.0a6 in 2.56s
 + cpython-3.14.0a6-linux-x86_64-gnu

venv の作成

uv で venv を作成するには uv venv コマンドを使います。
https://docs.astral.sh/uv/pip/environments/

例えば test-3.12 という名前の venv を作成するには以下のようにします。

uv venv test-3.12 --python cpython-3.12.3-linux-x86_64-gnu

指定する Python のバージョンは uv python list で確認したものを指定すると確実そうですが、単に 3.12 でも機能します。
Current Directory に 3.12 のためのディレクトリが作成されます。

Using CPython 3.12.3 interpreter at: /usr/bin/python3.12
Creating virtual environment at: test-3.12
Activate with: source test-3.12/bin/activate

仮想環境を有効化するには source test-3.12/bin/activate を実行します。
次はこの仮想環境にパッケージをインストールします。

パッケージのインストール

uv でパッケージをインストールするには uv pip コマンドを使います。

$ uv pip install pandas
Using Python 3.12.3 environment at: test-3.12
Resolved 6 packages in 138ms
Prepared 4 packages in 675ms
Installed 6 packages in 23ms
 + numpy==2.2.5
 + pandas==2.2.3
 + python-dateutil==2.9.0.post0
 + pytz==2025.2
 + six==1.17.0
 + tzdata==2025.2

list でインストール済みのパッケージを確認できます。

$ uv pip list
Using Python 3.12.3 environment at: test-3.12
Package         Version
--------------- -----------
numpy           2.2.5
pandas          2.2.3
python-dateutil 2.9.0.post0
pytz            2025.2
six             1.17.0
tzdata          2025.2

requirements.txt からインストールすることもできます。

$ cat requirements.txt
boto3
requests
click

$ uv pip install -r requirements.txt
Using Python 3.12.3 environment at:
Resolved 12 packages in 92ms
Prepared 4 packages in 38ms
Installed 10 packages in 82ms
 + boto3==1.38.15
 + botocore==1.38.15
 + certifi==2025.4.26
 + charset-normalizer==3.4.2
 + click==8.2.0
 + idna==3.10
 + jmespath==1.0.1
 + requests==2.32.3
 + s3transfer==0.12.0
 + urllib3==2.4.0

インストールしたパッケージは test-3.12/lib/python3.12/site-packages に格納されます。

所感

Python の開発に欠かせないツールがまとめられており、かつ高速に動作するため、自分は乗り換えることを決めました。
pyenv + pip + venv の組み合わせよりも、uv の方が圧倒的に速いと感じます。




以上の内容はhttps://rriifftt.hatenablog.com/entry/2025/05/14/150322より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14