Pythonの環境をuvへ移行する方法
uvが良さそうという噂を聞いたので、自分の場合はMiniForgeからuvに移行することを決意しました。
直接のきっかけは以下のUdemy講座の受講です。eikichi先生ありがとうございます!
Python初学者でもOK!UV×VSCode×GitHub×Vast aiを活用したデータ分析・AI開発環境構築術
MiniForgeはインストールしてないよって人は、最初のMiniForge/Pyenv削除を読み飛ばせばuvのセットアップ記事として読めます!
MiniForge/Pyenvの削除
MiniForgeを断固たる決意で削除します。以下記事の最後にちゃんとアンインストールの方法が書いてあります。
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
含めたリポジトリの作成を依頼します。
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
uv tool
でインストールする
Python CLI ツールを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で環境構築をしていくのが良さそうだなと感じました。
参考リンク
関連記事
変更履歴
- 2025/04/13 uv toolに関して追記
Discussion