🫥

Ryeでととのう

2023/09/15に公開

Pythonととのってない

Pythonってライブラリとpython自体の管理が非常に大変です
これまでに数多のパッケージングツールや仮想環境ツールが作られてきました
その度に我々は新しいものに飛びついては, 裏切られ...
とにかくPythonのエコシステムは無秩序に発展してきたといっても過言ではない

Rye

上記のPythonのエコシステムを統一したいという気持ちで生まれた、らしい
Flaskなどで有名な@mitsuhiko氏が作者である。

https://github.com/mitsuhiko/rye?ref=ground-reality.ghost.io

Rust製なのでPythonへの依存関係がないのがメリットで嬉しい.
ドキュメントはこっち

https://rye-up.com/?ref=ground-reality.ghost.io

Ryeを導入する

とりあえず導入してみる, 公式はこっち

curl -sSf https://rye-up.com/get | bash
echo 'source "$HOME/.rye/env"' >> ~/.zshrc
source "$HOME/.rye/env"

途中で, バージョンとOSを聞かれるがyesしていると数分で終わる

Ryeでプロジェクトをつくる

とりあえず適当に作ってみる, 今回はLJMというプロジェクトを作ってみる

rye init LJM

とすると

.  
├── pyproject.toml  
├── README.md       
└── src             
   └── ljm          
      └── __init__.py

という具合にディレクトリが生成される.
rye init --helpで色々なオプションがみられる

バージョンの管理

Ryeではpythonのバージョンと仮想環境も管理してくれる

rye pin 3.11

とすると, .python-versionというファイルで管理される.
この時点では仮想環境自体はインストールされない.
(rye syncでセットアップされる)

ライブラリの導入

ryeでは, 簡単にrye addすれば基本的にはOK, pyproject.tomlに追加されていく

# 開発用ツール
rye add --dev black
# 必要なライブラリはなにもつけずに
rye add numpy
# インストールはここでされる
rye sync

その他

他にも,

# このようにしてもOK
rye add "flask>=2.0"
# remove はシンプルに
rye remove flask

virtualenvのコンテキストで実行可能ファイルを実行するには、runコマンドを使う。例えばblackを使いたい場合は、次のように追加して実行する

rye add black
rye sync
rye run black

仮想環境を有効にするには, 一般的な方法で

# 仮想環境にはいる
. .venv/bin/activate
# 出る
deactivate

このように非常にシンプルかつ直感的にプロジェクトを作ることができる

https://ground-reality.ghost.io/rye-de-totonou/

Discussion