0. はじめに
以前以下のような記事を書きました。
しかし最近のTwitterの話題を聞きつけて、これより遥かに使い勝手のいいryeというパッケージ管理を使い始めたので自分のコピペ用+備忘録としてシェアします
- 動作環境
・ OS : Windows10 pro(記事更新時Windows11 pro)
・ rye : 0.9.0(記事更新時0.33.0)
1. ryeとは?
かの有名なPythonのWebアプリケーションフレームワークFlaskを作成したArmin Ronacher氏が作成したPythonパッケージ管理ツールで、Rust製なので動作がとにかく速い
2. 今までの管理ツールとの違い
公式の説明によるとryeはPython のインストールと管理、pyproject.toml ファイルの管理、依存関係のインストールとアンインストール、virtualenvs の裏側の管理などを行えるとのことです。
私なりに表で色々比較してみました。
Anacondaは正直初心者向けとして使い勝手いいとは思いますが、conda installでライブラリが見つからないことがある等色々使い勝手が悪いことも多く、さらに商用利用で有償化したので私は以前pyenvとpoetryに変更しました。
しかし、ryeはAnacondaのような悪いとことが無く、さらにpyenvとpoetryの2つを1まとめにしたような使いやすさでした。
Pythonバージョン | パッケージ管理 | ご利益 | 点数 |
---|---|---|---|
素Python | venv | PythonだけDLすればOK | 2 |
pyenv | venv | Pythonのバージョン管理ができる! | 3 |
pyenv | poetry | 依存関係の管理 プロジェクト管理ファイル venvの自動作成 |
4 |
rye | rye | pyenvにpoetryが加わった感じ | 5 |
Anaconda | Anaconda | 初心者にとっつきやすい ただし混ぜるなpip等制約も多い |
4 |
3. ryeの使い方
3-1. ryeの導入(Windows)
ドキュメント通り進めればOKです。
https://rye-up.com/
Windowsの場合は以下で導入可能
①rye-x86_64-windows.exe for 64bit Intel Windowsをダウンロード
②☝をインストール(途中にUVか否か選ぶ箇所あるがそのままEnter)
③環境変数PathにC:\Users\(ユーザー名)\.rye\shimsを登録し、優先順位を上げる(上に移動で移動させる)
④cmdでrye
と入力してエラーが出なければOK
なお、会社プロキシが噛んでいる場合はryeのデフォルトのGlobalなpythonがインストールできずエラーになります。その場合は以下で対応可能です
・コントロールパネルから環境変数の変更へ
・プロキシ(HTTP、HTTPS)を環境変数に設定し、Windows再起動
⇒これでプロキシ突破できます
3-2. ryeのコマンド
さて、それ以外のryeコマンドを以下にまとめました。
コマンド | 内容 |
---|---|
rye --version | ryeのバージョン確認 |
rye self update | rye自体のアプデ |
rye init ** | **プロジェクトの作成 |
rye pin (pythonバージョン) | プロジェクトで使用するpythonバージョン(toolchainと呼ばれてる)を指定 |
rye sync | venvがまだなければ作成し、 pyproject.toml に基づいて virtualenv を更新 |
rye add ライブラリ | プロジェクトにライブラリを加える (依存関係をプロジェクトに追加) ※addの後にsyncしないと書き込まれない |
rye add "ライブラリ>=2.0" | addのバージョン指定版 |
rye add ライブラリ --git=http://github | gitの依存関係を満たしてadd |
rye add ライブラリ --path=./myfolder | ローカルの依存関係を満たしてadd |
rye remove ライブラリ | addした依存関係を再度削除 |
rye run ** | ryeで実行可能ファイルを実行する (ex) rye run python --version |
rye toolchain list | すでにpinでDLされてるPython(toolchain)一覧 |
rye toolchain list --include-downloadable | どのPython(toolchain)がpinコマンド可能か?の一覧 |
rye toolchain remove cpython@(version) | 導入済のtoolchain(version)の削除 |
rye show | プロジェクト情報を確認 |
venvを有効にする ※.venv\Scripts\activateに変更されました |
|
rye list | add/syncしたライブラリ一覧表示 |
rye build | 配布用のパッケージをビルド |
3-3. ryeの使い方サンプル
3-1まで終わってる段階から
今回はpandasとjupyterを使って検証をする場合を想定。
※以下のフォルダに「sample_project」というプロジェクトを作成する
⓪cmdを開き、cd C:\Users\user_name\Desktop\sample_folder
で移動
①rye init sample_project && cd sample_project
でプロジェクト作成しcdで移動
②rye toolchain list --include-downloadable
で使用可能なバージョン確認
③rye pin 3.10.11
でプロジェクトで使用するtoolchain(例では3.10.11)を指定(まだなければ勝手にDL、.python-versionファイルが上書きされる)
⑤rye add ipykernel pandas
で使うライブラリ(例ではipykernelとpandas)をaddする
⑥rye sync
でvenvを作成しaddを適応させる
すると以下のようになっており、lockファイルを開くと追加されたライブラリ達が確認できる。
さらにお試しでrye run python --version
を実行するとpinで指定した3.10.11が使えていることもわかる。
4. おわりに
どうだったであろうか?
pyenv+poetryの時は「pyenv local ●●」でまずpythonバージョンを指定し、それからpoetry initでvenv作成して・・とほんの少し面倒でしたが、ryeなら全て完結することがお分かりいただけたと思います。
さらにRUST製だからかpoetryよりもだいぶ高速だと感じました
これからはこれがベストプラクティスになり、パッケージ管理競争が終結することを望みます(笑)
5. 追記(Pytorchの導入)
Pytorchを導入するにはどうするの?ということに言及しておく。
一度venvを作成した後に、以下のようにpyproject.tomlを開き[[tool.rye.sources]]を新規でtorchのURLを記載すればいい。
要するに外部からここのURLを参照してね!ということを宣言するのである
自分のCUDAはnvidia-smiコマンドで調べ、以下のページでそのCUDAに該当するバージョンを探す(私の場合はCUDA12.3ですが、以下URLでは12.1しか存在しないので12.1だと認識しておく)
https://pytorch.org/get-started/previous-versions/
で、そのCUDAのpytorchは以下のようにURL末尾にバージョンを指定する(私はCUDA12.1なので121)
https://download.pytorch.org/whl/cu121
https://download.pytorch.org/whl/cpu ※CPUならこれ
↓ ★追記★
[[tool.rye.sources]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu121"
で、後はrye add torch torchvision torchaudio
で無事にaddし、rye sync命令
をすれば無事に導入されるはずである。
6. 追記2(Rye+uv)
※最新のRyeをインストールしたらデフォルトでONになっているかもです
Astral社が最近「uv」というパッケージ管理ツールをリリースしたようです。これもRUSTで高速だそうですが、これらは統合していくようです。
Windowsにも正式に対応したらしいので、これを使わない手はないと思います。
というか使ったら爆速でsync(add)できるので有効にしない手はないです。必ずこの設定は有効にしましょう!!
rye self update ← ★ryeのアプデ★
↓ ★uvモードを有効にする★
rye config --set-bool behavior.use-uv=true
なお、rye --versionでuvがONしてるか確認可能
<参考>