- flask 作者の all in one な python の package manager
- pyenv 的な python 自体の version 管理も機能として含んでる
- まだ実験的なリリースだが、かなり使用感はよく、本番利用も全然イケそうに見える
- venv + pip-tools を裏手で動かして、project ごとの python 仮想環境を透過的に管理するイメージ
# install する
$ curl -sSf https://rye-up.com/get | bash
# path 通す (bashrc 部分はお好みの shell で)
$ echo 'source "$HOME/.rye/env"' >> ~/.bashrc
基本は init
で pyproject.toml
やら作ったあとに、add
や pyproject.toml
の編集後に sync
をかけて仮想環境を更新していく感じみたい。
# project の初期化
# rye init . で現在 dir に展開もできる
$ rye init my-app
# python 3.9 利用前提に、.python-version が更新される
# 省略するとその時点の python 最新を使う感じになるみたい
$ rye pin 3.9
# package の追加
$ rye add flask
# 仮想環境の更新
# venv 内に依存が install され requirements.lock などが更新される
$ rye sync
rye init の時点から python
などのコマンドを実行すると shell が勝手に venv の python を参照してくれるようになっていて、殆どのケースで activate とかしなくて済むのがとってもお手軽。
本番や CI などでは sync 後に生成される requirements.lock
みたいなやつを pip install -r
で使えばよさそう。
[project]
dependencies = [
"torch==1.10.1",
]
[[tool.rye.sources]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu111"