Pythonのパッケージ管理で有名なのはpipですが、最近流行している別の管理ツールが登場しました。
それが今回紹介するRye(ライ)です。
Flaskを開発したArmin Ronacher氏のオープンソースプロジェクトであり、Python開発者の開発体験を損なわない設計が評価されています。
Rye(ライ)の特徴
Ryeには以下の特徴があります。
- Rust製で高速
- Python開発環境のワンストップツール
- virtualenvとシームレスに動作
- ruffがバンドルされていてlinterやformatterが内蔵
- まだ実験的ツールのため本番利用では気をつけたい
その作りや状況的に、Python開発をある程度こなしてきた人が使うことが推奨されます。
未経験や初心者の方はpipやpoetryから始めましょう。
Ryeをインストール
今回はmacOSで進めますが、Windowsでもインストール方法が示されているのでこちらのページから自身の環境に合わせてインストールしてください。
※Rust環境がある人は自分でビルドすることも可能
macOSとLinuxの場合は以下のコマンドです。
curl -sSf https://rye-up.com/get | bash以下のような選択肢が出てくるので、好みに合わせて選択していきましょう。
今回は高速なパッケージインストーラーであるuvとcpython@3.12.2をインストールしました。
✔ Select the preferred package installer · uv (fast, recommended)
✔ What should running `python` or `python3` do when you are not inside a Rye managed project? · Run a Python installed and managed by Rye
✔ Which version of Python should be used as default toolchain? · cpython@3.12インストールが済んだら、~/.zshrcなどで以下を設定しておきます。
source "$HOME/.rye/env"設定を有効化したらRyeの準備は完了です。
source ~/.zshrc$ rye --version
rye 0.32.0
commit: 0.32.0 (e1b4f2a29 2024-03-29)
platform: macos (aarch64)
self-python: cpython@3.12.2
symlink support: true
uv enabled: trueRyeのアップデート
Rye自体のアップデートは以下のコマンドで実行できます。
rye self updateRyeのアンインストール
Ryeのアンインストールは以下のコマンドで実行できます。
rye self uninstallRyeの使い方
Ryeを使ったプロジェクトを作成する際はまず最初に以下のコマンドを実行します。
rye init [プロジェクト名]すると以下のようなファイル構造になります。
.
├── README.md
├── pyproject.toml # パッケージ管理用ファイル
└── src
└── [プロジェクト名]
└── __init__.pysrc/[プロジェクト名]/__init__.pyの内容は以下のようになっています。
def hello() -> str:
return "Hello from v1!"さらに以下のコマンドを実行します。
rye syncこのコマンドで、以下のファイルの生成されます。
.
├── .git
├── .gitignore
├── .python-version # Pythonバージョン固定
├── .venv # virtualenvファイル
├── requirements-dev.lock
├── requirements.lockRyeでパッケージ管理
準備ができたので、続いてパッケージ管理をしていきましょう。
FastAPIプロジェクトを作成していく前提で進めます。
rye add fastapiインストール済みのパッケージを表示したい場合は以下のコマンドです。
$ rye list
annotated-types==0.6.0
anyio==4.3.0
fastapi==0.110.1
idna==3.7
pydantic==2.7.0
pydantic-core==2.18.1
-e file:///path/to/project
sniffio==1.3.1
starlette==0.37.2
typing-extensions==4.11.0ちょうどpip freezeと同じ形で表示されます。
パッケージのアンインストールは以下です。
rye remove fastapiCLIとして利用できるパッケージの場合、以下の流れで使うことが可能です。
今回はフォーマッターであるblackを使ってみます。
$ rye add black # blackをインストール
$ rye sync # virtualenv環境に同期
$ rye run black src/[プロジェクト名]/__init__.py # 実行またはvirtualenvを有効化することでも使えます。
$ . .venv/bin/activate
$ black src/[プロジェクト名]/__init__.pyその他の機能
Ryeにはたくさんの機能がありますが、その中の一部を紹介します。
ビルド
distディレクトリにビルドできます。
rye buildPyPIへの公開
distディレクトリをPyPIへ公開できます。
rye publishコード整形/コードチェック
Ruffを使ったコード整形とチェックができます。
rye fmtrye lint次世代パッケージ管理Ryeを使ってみよう
ここまで、Ryeをざっくり紹介してきましたが、pipと違い発展途上のワクワク感がありました。
Rust製で、uvやruffのような比較的新しいパッケージを採用していることで、次世代Python開発環境の筆頭と言えるでしょう。
もし個人的なプロジェクトや新しく始める小規模なプロジェクトがあったら、ぜひ実験的に使ってみてください。





