Rye とは? Pyenv のような Pipenv のような Poetry のようなものらしい。
インストール
brew では環境変数の設定がうまくいかなかったので、ドキュメント通りインストーラスクリプトを使いました。このようにインストールし直す時は ~/.rye も消さないと古いリンクが残って面倒な事になるので注意。
brew install rye
curl -sSf https://rye.astral.sh/get | bash
全部 yes
echo 'source "$HOME/.rye/env"' >> ~/.zprofile
which python
xxx/.rye/shims/python
インストールして環境変数を設定すると、python コマンドは ~/.rye 以下の物を参照するようになります。つまり、rye は python コマンドのバージョンを管理する pyenv と、python で利用するライブラリを管理する venv / pipenv / poetry の両方の役割を果たします。
パッケージの管理
rye では、パッケージはプロジェクトの中の .venv に閉じてインストールされます。
pyproject.toml をもとに環境を更新する。
rye sync
パッケージを project.toml の project.dependencies に追加して環境を更新する。
rye add パッケージ
パッケージを project.toml の tool.rye.dev-dependencies に追加して環境を更新する。
rye add --dev パッケージ
rye add でインストールしたコマンドを実行する。
rye run コマンド
pyenv との関係
rye は pyenv と同様に利用する python のバージョンを .python-version ファイルから判別します。rye と pyenv の動作はよく似ていますが、ディレクトリ構成をみると互換性は無いようです。プロジェクトの python バージョンを指定する方法は以下の通り:
rye pin バージョン
注意!: rye を入れたら PATH から $HOME/.pyenv/shims
を消した方がいいです。rye と pyenv の共存も可能なようですが、VSCode が混乱して困りました。
venv との関係
rye は venv のラッパーとして動くので、rye add したコマンドにパスを通すには activate しても良いです。
. .venv/bin/activate
venv から抜ける
deactivate