Zenn
🌼

Pythonの環境をuvへ移行する方法

に公開
22

uvが良さそうという噂を聞いたので、自分の場合はMiniForgeからuvに移行することを決意しました。

直接のきっかけは以下のUdemy講座の受講です。eikichi先生ありがとうございます!

Python初学者でもOK!UV×VSCode×GitHub×Vast aiを活用したデータ分析・AI開発環境構築術

MiniForgeはインストールしてないよって人は、最初のMiniForge/Pyenv削除を読み飛ばせばuvのセットアップ記事として読めます!

MiniForge/Pyenvの削除

MiniForgeを断固たる決意で削除します。以下記事の最後にちゃんとアンインストールの方法が書いてあります。

https://zenn.dev/karaage0703/articles/f3254b14898b4d#miniforgeをアンインストールする方法

pyenvの場合は以下です。
https://zenn.dev/karaage0703/articles/5af7ce4b8b1a8a#pyenvアンインストール方法

uvのセットアップ

公式ガイドを参考にセットアップします。

インストールは以下コマンドです。

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

ただ自分の環境(Mac/Linux両方)だと以下のエラーが出ました。

WARNING: The following commands are shadowed by other commands in your PATH: uv uvx

なのでPATH加えました。

zshrcの場合(主にMac)

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

bashrcの場合(主にLinux)

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

念の為、もう一度インストールコマンド実行して「everything's installed!」と表示されたらOKです。

uvによる環境構築

0から環境構築する場合は、自分は、結構AIに頼っています。Cline x VS Codeで、プロンプトでpyproject.toml含めたリポジトリの作成を依頼します。

https://zenn.dev/mkj/articles/cf8536923d9cd7

pyproject.tomlがあるリポジトリの場合は、以下コマンドで仮想環境を構築します。

$ uv sync

以下で再構築できます。

$ uv sync --reinstall

以下コマンドで構築した仮想環境をアクティベートします。

$ source .venv/bin/activate

VS Codeエディタの場合はCommand + Shift + Pで「Python: Select Interpreter」から./.venv/bin/pythonを選べばOKです。

仮想環境だけを構築したいケース

特にパッケージ化・ライブラリとして公開する想定なくrequirements.txtだけがあるようなパターンです。私も大半はこのケースが多いです。その場合は仮想環境を構築してアクティベート(有効化)します。

$ uv venv
$ source .venv/bin/activate

以下のように-pオプションでPythonのバージョンも指定できます。

$ uv venv -p 3.11

続いて以下コマンドでrequirements.txtのライブラリをインストールすればOKです。

$ uv pip install -r requirements.txt

ディアクティベート(無効化)するときは以下です。

$ deactivate

Python CLI ツールをuv toolでインストールする

uv には uv tool という便利な機能があり、Python製のCLIツールを簡単にグローバルにインストールできます。以下のようにコマンドを実行するだけでOKです。

$ uv tool install パッケージ名

たとえば somecli という CLI ツールをインストールしたい場合は:

$ uv tool install somecli

これでツールは $HOME/.local/bin にインストールされ、ターミナルからどこでも実行できるようになります(※実行できない場合は、ターミナルの再起動、本記事冒頭のPATH追加を実行してください)。

不要になったツールは以下で削除できます:

$ uv tool uninstall somecli

開発中のツールや、GitHub などからクローンしたプロジェクトをローカルから直接インストールすることもできます:

$ uv tool install ./path/to/your/cli-tool

インストールしないで使う場合は、以下のようにuv tool runを使うことで実行することもできます。

$ uv tool run ruff

なおuvxというコマンドはuv tool runのエイリアスです。uvxはよく使われるので覚えておくと戸惑わずにすみます。

$ uvx ruff

詳しくは公式サイトのUsing tools(uv)を参照してください。

まとめ

MiniForgeからuvに移行しました。最初ちょっと環境設定でつまづきましたが、途中からはAIがだいたいいい感じにしてくれました。

使用した感想としては、やっぱり環境構築が速いですね。これは嬉しいです。あとはMCPとも相性良さそう(uvが必要なものが多い)のもよいですね。GPUを使う場合はCUDAのバージョンを管理しやすいのでDockerを使いたいところですが、それ以外のときは、基本はuvで環境構築をしていくのが良さそうだなと感じました。

参考リンク

https://zenn.dev/turing_motors/articles/594fbef42a36ee

https://qiita.com/ssc-ksaitou/items/9da75058489ebe8c2009

https://zenn.dev/colum2131/articles/342b7bdb20c54e

https://zenn.dev/mjun0812/articles/b22adf3fab1fdd

https://blog.amedama.jp/entry/python-uv

https://note.com/noa813/n/nec941b514bca

関連記事

https://zenn.dev/karaage0703/articles/42f7b0655a6af8

変更履歴

  • 2025/04/13 uv toolに関して追記
22

Discussion

ログインするとコメントできます