Python

Ryeとは?開発終了後の扱いとWindowsでのインストール・uv移行・アンインストール

Ryeは2023年に公開されたpyproject.tomlベースのPythonプロジェクト管理ツールですが、2025年2月に開発が終了しました。GitHubリポジトリはアーカイブされ、公式READMEには「セキュリティ更新も含め、今後のアップデート予定はない」と明記されています。それでもRyeで組んだプロジェクトは動き続けるため、いま検索する人の関心は「新しく導入すべきか」ではなく、手元のRyeをどう扱うかに移っています。この記事ではWindowsでのインストールとPATH設定、後継のuvへの移行手順、そしてアンインストールまでを、公式ドキュメントとGitHubの実データに基づいて整理します。

まとめ

Ryeは2025年2月に開発終了し、最終リリースは0.44.0(2025-02-26)です。リポジトリastral-sh/ryeはアーカイブ済みで、新機能もセキュリティ修正も追加されません。2026年時点でRyeを新規採用する理由はなく、同じ開発陣による後継のuvを使うのが公式の推奨です。

ただし既存プロジェクトを慌てて壊す必要はありません。Ryeのバイナリとpyproject.tomlベースの構成はそのまま動作し、Windowsへのインストールも従来どおり可能です。移行は[tool.rye]セクションを[tool.uv]へ書き換えるだけで済むケースが多く、[tool.rye]が無いプロジェクトなら書き換えすら不要です。唯一の難所は[tool.rye.scripts]で定義したタスクで、uvにはタスクランナーが無いため代替の設計が要ります。以降で、インストール・基本操作・移行・削除の順に具体的な手順を見ていきます。

Ryeの現在地:開発終了とリポジトリのアーカイブ

開発終了の公式アナウンスとセキュリティ更新の停止

Ryeの公式READMEは冒頭で開発終了を告知しており、「Ryeは今後も入手可能なままだが、セキュリティ更新を含め、これ以上の更新は予定されていない(no further updates are planned, including security updates)」と述べています。インストールガイドも「Ryeは2025年2月時点で開発されていない。新規ユーザーは代わりにuvをインストールしてほしい」と冒頭に注記を置いています。

GitHub APIで実際のリポジトリ状態を確認すると、astral-sh/ryearchived: true(読み取り専用)で、最終リリースは0.44.0(2025年2月26日公開)です。スターは1万4千を超えたまま止まっています。Issueもプルリクエストも受け付けられません。「メンテナンスモードで細々と続く」のではなく、リポジトリごと凍結されている状態です。

実務上いちばん重い意味を持つのは「セキュリティ更新もしない」という一文です。Ryeは自身でPythonツールチェーンをダウンロードし、内部でuvやpip-toolsを呼び出します。その依存に脆弱性が見つかっても、Rye側が更新版を同梱し直すことはもうありません。社内の標準ツールとして配り続けるなら、この点は明示的にリスクとして受け入れる判断が必要です。

Ryeが束ねていた機能と、後継uvとの関係

RyeはFlaskの作者Armin Ronacher氏が2023年に公開したツールで、Pythonのインストール(python-build-standaloneのビルドを取得)、仮想環境の管理、pyproject.tomlによる依存管理、ロックファイル生成、Ruffによるlint/format、pytestの実行、wheelのビルドと公開までを1つのCLIに束ねていました。当時のPythonは、pyenv・venv・pip・Poetry・toxを組み合わせて使うのが当たり前で、その分断を1本で埋めた点が評価されました。

その後Ryeはastral-shオーガニゼーションへ移り、同じ開発陣がRustで書いた高速なパッケージインストーラuvが成長します。Ryeは後期には依存解決とインストールを内部でuvに委ねており、機能的にuvが上位互換になった時点で役割を終えました。READMEはuvを「同じメンテナによる後継プロジェクト(successor project)」と明記しています。uvは現在も活発に開発されており、2026年7月時点では0.11系が短い間隔でリリースされ続けています(0.11.28が2026年7月7日公開)。uv側の使い方はuvとは?Pythonの環境構築・パッケージ管理・バージョン管理の使い方を徹底解説で詳しく扱っています。

WindowsへのRyeインストールとPATH設定

インストーラの入手と実行時に出る警告

WindowsではLinux/macOSのようなcurlワンライナーは使わず、GitHubリリースから実行ファイルを直接ダウンロードして起動します。64ビット環境ならrye-x86_64-windows.exe、32ビット環境ならrye-x86-windows.exeです。初回起動時にRye自身がユーザーのホーム配下(%USERPROFILE%\.rye)へ自分自身をインストールし、対話形式でPython版の選択やPATH登録の可否を尋ねます。

:: 64ビット版をダウンロードして実行(ダウンロード先で)
rye-x86_64-windows.exe

:: インストール後、新しいターミナルで確認
rye --version

ここで多くの人が引っかかるのが2種類の警告です。ひとつはSmartScreenの「WindowsによってPCが保護されました」。Ryeのバイナリには署名が付いていないため、公式ドキュメント自身が「実行を許可する必要がある。明確な方法が見当たらなければ、警告の『詳細情報』をクリックしてから『実行』を選ぶ」と案内しています。もうひとつはウイルス対策ソフトが「Bearfoos」というトロイの木馬を検出したと表示するケースで、これは公式が誤検知(false positive)と認めている既知の事象です(GitHub issue #468)。

shimsフォルダをPATHに登録する

Windowsのインストーラは通常PATHを自動登録しますが、うまくいかずryeコマンドが「見つかりません」となる場合は手動で追加します。登録するのは%USERPROFILE%\.rye\shimsで、ここにはRye本体に加え、Ryeが管理するPythonへのshim(pythonpython3)が置かれます。

  1. Windowsキー+Rでsysdm.cplを実行する
  2. 「システムのプロパティ」の「詳細設定」タブから「環境変数」を開く
  3. 上段のユーザー環境変数でPathをダブルクリックする
  4. 「新規」で%USERPROFILE%\.rye\shimsを追加する
  5. 「上へ」を繰り返し押し、追加した項目を一覧の先頭へ移動する
  6. 「OK」で閉じ、必要ならサインインし直す

先頭へ移動させる指示には理由があります。Windowsにはpythonと打つとMicrosoft Storeを開くアプリ実行エイリアスがあり、既存のPythonインストールもPATHに並んでいます。shimsが後ろにあると、Ryeが用意したPythonではなく別のPythonが先に拾われる。逆にshimsを先頭に置くと、システム側のPythonを前提に動く既存ソフトの挙動が変わる可能性がある点は、公式も注意として挙げています。

開発者モードの有効化とインストールのカスタマイズ

公式ドキュメントは、Windowsではインストール前に「開発者モード」を有効化することを強く推奨しています。理由はシンボリックリンクです。Windowsでシンボリックリンクを作るには特権が必要ですが、開発者モードを有効にすると一般ユーザーでも作成できます。Rye自体はシンボリックリンク必須ではないものの、有効な方が明らかに快適に動きます。設定は「設定」→「システム」→「開発者向け」から切り替えます。

すでに手元にあるPythonをツールチェーンとして使わせたい場合など、インストールの挙動を変えたいときはcmd.exeから環境変数を設定してインストーラを起動します。

set RYE_TOOLCHAIN=%USERPROFILE%\AppData\Local\Programs\Python\Python310\python.exe
rye-x86_64-windows.exe

Ryeの基本操作:既存プロジェクトを保守するための最小コマンド

新規学習の必要はもうありませんが、既存プロジェクトを引き継いだときに最低限動かせるコマンドは押さえておく価値があります。Ryeはpyproject.tomlベースのプロジェクトを前提とし、setup.pyベースのプロジェクトには対応していません。

rye init my-project
cd my-project
rye pin 3.10
rye sync
rye add "flask>=2.0"
rye remove flask

上から順に、プロジェクト雛形の作成、Pythonバージョンの固定(.python-versionに書き込まれる)、仮想環境とロックファイルの生成、依存の追加、依存の削除です。rye addpyproject.tomlを書き換えるだけなので、実際に環境へ入れるには続けてrye syncを実行します。

rye init.git.gitignore.python-versionpyproject.tomlREADME.mdsrc/を持つ構成を生成します。rye syncを初めて実行すると、Ryeは互換性のあるCPythonを自動でダウンロードします。システムに別のPythonが入っていても、それは使われません。生成される仮想環境はpyproject.tomlと同じ階層の.venvで、ロックファイルはrequirements.lockrequirements-dev.lockの2本です。

注意点として、Ryeが作る仮想環境の中のPythonにはpipが入っていませんpip installで場当たり的に足す運用ができないため、依存の追加は必ずrye add経由になります。ここはPoetryなど他ツールから移ってきた人が最初に戸惑うところです。ツール間の思想の違いはPoetryが解決するPython依存関係管理が抱える構造的な課題と読み比べると輪郭がはっきりします。

Ryeからuvへ移行する手順

pyproject.tomlの[tool.rye]を[tool.uv]へ書き換える

公式の移行ガイド(uv 0.8/2025年7月時点の記述)は、[tool.rye]セクションが無いプロジェクトなら、そのままuvで動くと明言しています。pyproject.toml自体は標準仕様なので、Rye固有の設定を書いていなければ変換作業は発生しません。[tool.rye]がある場合も、多くは[tool.uv]へ名前を変えるだけで済みます。単純なリネームで済まない設定は次のとおりです。

Ryeの設定 uvでの対応 注意点
tool.rye.universal tool.uv.pip.universal pip名前空間へ移動
tool.rye.generate-hashes tool.uv.pip.generate-hashes pip名前空間へ移動
tool.rye.lock-with-sources tool.uv.no-sources 真偽が反転(false → true)
tool.rye.virtual tool.uv.package 真偽が反転(true → false)
tool.rye.dev-dependencies dependency-groups.dev 標準キーへ。tool.uv.dev-dependenciesは非推奨
[[tool.rye.sources]] [[tool.uv.indexes]] 既定は default=true、flatは format=”flat”

反転する2つ(lock-with-sourcesvirtual)が事故のもとです。機械的にリネームすると意味が逆になり、アプリケーションとして扱いたいプロジェクトがライブラリとしてビルドされる、といった食い違いが起きます。またRyeはインデックスURL内の環境変数を展開できましたが、uvは同じ挙動を持ちません。認証情報なら環境変数やkeyringプロバイダ、URL全体を差し替えたいならUV_INDEXUV_DEFAULT_INDEXで代替します。

コマンドとロックファイルの対応

CLIの手触りは似ていますが、同名コマンドが同じ意味とは限りません。特にrye init --scriptuv init --script別物です。前者に対応するのはuv init --packageで、uvの--scriptはPEP 723ヘッダを持つ単一ファイルスクリプト(Ryeには無い機能)を作ります。

Rye uv
rye init uv init
rye init –script uv init –package
rye sync uv sync
rye add / rye remove uv add / uv remove
rye lint(rye check) uv add –dev ruff → uv run ruff check
rye fmt(rye format) uv run ruff format
rye test uv add –dev pytest → uv run pytest
requirements.lock uv.lock(uv exportでrequirements形式も出力可)

ロックファイルの扱いは移行時に方針を決めておきます。Ryeのrequirements.lockはpip互換の書式で、Dockerイメージ内ではpip installで流し込む使い方が公式ドキュメントでも案内されていました。uvは独自形式のuv.lockを使いますが、移行ガイドはその手順をそのまま持ち込まず、本番でもuvで環境を構築することを強く勧めています。ビルド段階でuv sync、実行時にuv runという形です。requirements.txt形式が他ツールとの連携で必要ならuv exportで出力できます。

移行の唯一の難所:[tool.rye.scripts]の代替設計

Ryeで[tool.rye.scripts]にテスト・ビルド・整形などのタスクをまとめていた場合、そのまま持っていく先がありません。uvにはタスクランナーが無い(機能要望はastral-sh/uv#5903として継続議論中)ためです。[project.scripts]に書く実行可能スクリプトは標準仕様なのでuvでも完全に動きますが、これは別物なので混同しないでください。

現実的な選択肢は3つです。タスクが数本ならuv runを直接叩く形に展開してREADMEに書き出す。手順が定型化しているならMakefileかシェルスクリプトに寄せる。CI側に持たせられるならワークフロー定義へ移す。移行前に[tool.rye.scripts]の中身を数えておくと、移行工数の見積もりがほぼそこで決まります。

Ryeのアンインストール:残る.ryeフォルダとPATHの後始末

Rye自身の削除は専用のサブコマンドで行います。rye removeは依存パッケージを外すコマンドなので、Rye本体を消すコマンドと取り違えないようにしてください。

rye self uninstall --yes

公式ドキュメントが注意しているとおり、このコマンドを実行しても.ryeフォルダは空のenvファイルを残したまま残存します。完全に消すなら、コマンド実行後に手作業で後片付けが要ります。

  • Windows:%USERPROFILE%\.ryeを削除し、環境変数Pathから%USERPROFILE%\.rye\shimsの行を削除する
  • macOS/Linux:~/.ryeを削除し、.profile.zprofile.bashrc等に書いたsource "$HOME/.rye/env"の行を削除する
  • fish/nushell:fish_user_pathsenv.nuに直接追加した~/.rye/shimsのパスを外す

PATHの行を消し忘れると、Rye本体が無いのにshimsのパスが残り、ターミナル起動時に警告が出たりpythonの解決先が不安定になったりします。プロジェクト側の.venvrequirements.lockはRyeを消しても残るため、uvへ移行するなら.venvを削除してuv syncで作り直すのが確実です。

いま新規採用すべきでない理由と、既存プロジェクトの移行判断

結論から書くと、2026年にRyeを新しいプロジェクトへ入れる合理的な理由はありません。「安定しているから枯れたツールとして使う」という論法はRyeには通用しません。セキュリティ更新すら行わないと公式が宣言している以上、時間の経過とともに一方的にリスクだけが積み上がるからです。同じ開発陣が作り、機能的に上位互換で、活発に更新されているuvが存在する状況で、あえて凍結されたツールを選ぶ意味はありません。Pythonのパッケージ管理ツールを新規に比較検討している段階なら、Pixiとは?Python/Conda対応の高速パッケージ管理ツール|インストールと使い方のようなConda系との比較まで含めて、生きている選択肢の中から選ぶべきです。

一方で、既存のRyeプロジェクトを今日中に移行しなければならないわけでもありません。Ryeのバイナリは動き続け、rye syncも従来どおり機能します。優先度を判断する材料として、次の条件のどれかに当てはまるなら移行を前倒しする価値があります。

  • CIやDockerイメージでRyeのインストーラをネットワーク越しに取得している(配布が将来止まった時点でビルドが壊れる)
  • 新しいメンバーが継続的に参加するチームで、凍結ツールの学習コストを払わせ続けたくない
  • 新しいPythonバージョンへの追随が必要(ツールチェーンの取得挙動が更新されないため、将来の版で詰まる可能性がある)

逆に、機能追加が止まっていて[tool.rye][tool.rye.scripts]も使っておらず、社内でイメージを固定して運用しているような保守フェーズのプロジェクトなら、移行は「次に大きく手を入れるとき」で十分間に合います。失敗しやすいのは、この判断を飛ばして全プロジェクトを一斉に移行しようとするケースです。前述のとおりタスクランナーの置き換えだけは自動変換が効かないため、[tool.rye.scripts]を多用しているプロジェクトから順に、個別に設計し直す時間を確保してください。エディタ側の対応状況を先に確認しておくと移行が滑らかで、JetBrains系ならPyCharm 2025.3 の新機能まとめ(統合 IDE・リモート Jupyter・uv 対応など)でuvの扱いが分かります。

よくある質問

Ryeの読み方と名前の由来は?

「ライ」と読みます。英語でライ麦を指す単語で、公式のロゴにも麦の穂があしらわれています。作者はFlaskの開発者として知られるArmin Ronacher氏。2024年8月に公開したブログ記事「Harvest Season」(収穫期)で、Ryeの役割を後継のuvへ引き継ぐ方針が説明されました。記事タイトルの「収穫」はRyeの名前と対応しています。

2026年7月時点でRyeはまだ動きますか?

動きます。公式も「Ryeは今後も入手可能なままだ」としており、インストーラの配布も継続しています。ただし更新は一切行われず、最終リリースは0.44.0(2025年2月26日)のままです。セキュリティ修正も出ないため、動くことと使い続けてよいことは別問題として扱ってください。

Windowsでryeコマンドが「見つかりません」と出るのはなぜ?

ほぼPATHの問題です。%USERPROFILE%\.rye\shimsがユーザー環境変数Pathに登録されているか確認し、無ければ追加したうえで一覧の先頭へ移動させてください。追加した直後は既存のターミナルに反映されないため、新しいターミナルを開き直すか、サインインし直す必要があります。

rye self uninstallのあとに残る.ryeフォルダは消していいですか?

消して問題ありません。公式ドキュメント自身が「空のenvファイルを含む.ryeフォルダが残る」と明記しており、意図的に消し残される仕様です。合わせてPATHやシェル設定ファイルに書いた.rye/shimssource "$HOME/.rye/env"の行も削除してください。プロジェクト側のファイルには影響しません。

RyeとuvはどちらもAstral製ですが、併用できますか?

技術的には併用できます。後期のRyeは依存解決とインストールを内部でuvに委ねており、両者が同じpython-build-standaloneのPythonを使うため挙動の互換性も高い設計です。ただし現在それを狙って併用する意味はありません。Ryeが担っていた部分はuv単体でほぼ賄えるため、併用ではなく移行として扱うのが公式の推奨です。

関連記事

資料請求

RELATED POSTS 関連記事