Poetryからrye+uvに乗り換えてみる
実行環境
- Ubuntu22.04
- zsh
Ryeのインストール
公式ドキュメントをもとにインストールしていく
curl -sSf https://rye-up.com/get | bash
インストール時にuvを使うかどうか,PythonインタプリタもRyeで管理するか聞かれる.今回はどっちも使う感じにした.
次にデフォルトで使うPythonのバージョンを聞かれる.
初期設定だとcpython 3.12だが,普段は3.10を使うので変更してみる.
コンソールにcpython@3.10
と打って続行.
公式ドキュメントを見ると3.9~3.12まで対応してるみたい
インストール完了後,source $HOME/.rye/env
でRyeを有効にできる.
Pythonの管理もRyeに任せる場合,以下のコマンド実行でインタプリタがダウンロードされる.
rye fetch
プロジェクト作成~ライブラリの追加
プロジェクト作成
プロジェクトは以下のコマンドで作れる
rye init test_project
直下にtest_project
が作られる.プロジェクトに移動して,
rye sync
でvenv等が作れる.
仮想環境で用いるPythonのバージョンを固定する場合は,
rye pin cpython@3.10
でできる
ライブラリの追加
scikit-learnを追加してみる.
rye add scikit-learn
これだけ.poetryと同じ感じでできる.
pytorchの追加もしてみる.
別途参照するリンクを追加しないといけないが,Ryeの公式にやり方が書いてある.
プロジェクト直下のpyptoject.tomlに以下を追加
[[tool.rye.sources]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu118"
次に
rye add torch
uvとpipの仮想環境構築速度の比較
以下コマンドでuvとpipを変更できる
rye config --set-bool behavior.use-uv=true
rye self update
uv: rye sync 61.99s user 13.13s system 58% cpu 2:08.42 total
pip: rye sync 158.59s user 50.01s system 47% cpu 7:16.70 total
uvでtorchvisionのインストールは失敗した.pipに切り替えた場合うまくいったので,まだバグがあるのかも?
エラー文
Generating production lockfile: /home/hagane/usr/tmp/rye_uv_test/torch_test/requirements.lock
× No solution found when resolving dependencies:
╰─▶ Because torchvision==0.17.1+cu118 depends on torch==2.2.1 and you require torch==2.2.1+cu118, we can conclude that you require==0a0.dev0 and torchvision==0.17.1+cu118 are
incompatible.
And because you require torchvision==0.17.1+cu118, we can conclude that the requirements are unsatisfiable.
error: could not write production lockfile for project
2024/3/20現在
エラーの原因を色々調べた結果,uv側の問題らしく次期リリースで修正予定らしい.