package management for Python
- ryeを用いて,pythonとpython packageの管理を行います.
- シェルスクリプト1つで初期設定が完了します.
- Linter・FormatterにRuffを採用しています.
Note
本テンプレートは新規プロジェクトの初期化向けのテンプレートとなっています.
プロジェクトの途中からryeを使用する際のスクリプトの使用は推奨していませんが,手順は参考になると思います.
- ryeがinstallされていること
- VSCodeのRyeの拡張機能がinstallされていること
以下のinstall方法は更新されている可能性があるので,公式サイトをご確認ください
curl -sSf https://rye.astral.sh/get | bash
macOSの場合以下でも可
brew install rye
install後,PATHを通す
echo 'source "$HOME/.rye/env"' >> ~/.profile
または
echo 'source "$HOME/.rye/env"' >> ~/.bashrc
以下などで設定を反映させる.使用しているshellや環境に応じて,適切なファイルに記述してください.
source ~/.bashrc
Caution
空のディレクトリで行うことを推奨します.
シェルスクリプト内に現在のディレクトリのsrc/
以下をすべて消す操作が含まれているので注意してください.
背景:Featuresをご確認ください
- これから使用するプロジェクトのルートに移動する(空のディレクトリ)
- setup.shファイルを作成し,本リポジトリ内のsetup.shの内容を貼り付ける
touch setup.sh
- パーミッションを与える
chmod +x setup.sh
- 実行する
./setup.sh
Option: requirements.txtからパッケージをまとめて追加したい場合
requirements.shファイルを作成し,本リポジトリ内のrequirements.shの内容を貼り付け,パーミッションを与える.
touch requirements.sh
chmod +x requirements.sh
引数にrequirements.txtのパスを指定して,実行.(引数を渡さない場合./requirements.txtになる)
./requirements.sh ./requirements.txt
ryeでよく使うコマンドについて解説
ryeプロジェクトの作成
rye init プロジェクト名
src/
ディレクトリがすでにある場合はsrc/以下にプロジェクト名/
などを作成しない.
ただし,buildはsrc/プロジェクト名
となっている
pythonバージョンの指定
rye pin 3.10
ライブラリの同期.pythonバージョンの変更や,ライブラリの追加(add)を行った後は必ず行う.
rye sync
パッケージの追加(pip install)
pip installの代わりにrye add
でパッケージを追加していくのが基本的な使い方です.rye sync
も忘れずに
rye add パッケージ名
開発用パッケージの追加(formatやtest用など)
rye add --dev パッケージ名
バージョン指定
rye add "パッケージ名==1.1.1"
パッケージの削除(pip uninstall)
rye remove パッケージ名
仮想環境で実行
rye run python 〇〇.py
rye run コマンド
pyproject.tomlの以下の欄にコマンドを設定することが出来ます.
本テンプレートではフォーマットのコマンドを作成しています.
[tool.rye.scripts]
仮想環境に入る(OSによって異なる可能性があります.各自venv等で検索してください)
. .venv/bin/activate
仮想環境から抜け出す
deactivate
setup.pyで行っていることの解説
rye init .
でryeのプロジェクトを作成rye pin 3.10
でpythonのバージョン指定- ディレクトリ構成が
src/プロジェクト名
になり,構造が深くなるのが嫌なのでsrc/
になるように変更- この際最初に存在する
src/
以下のファイルを全削除 - buildのターゲットディレクトリをそれにあわせて変更
- 実際にbuildは行ったこと無い(行うこともおそらく無い)のでbuild時の挙動は未確認
- この際最初に存在する
rye add --dev ruff
,rye add pip
,rye sync
で必要最低限のパッケージを追加.vscode/setting.json
を作成し,保存時にformatをかける設定を追加- VSCodeのRuffの拡張機能を追加しておく
- Ruff / charliermarsh.ruff
.gitignore
にpythonでよく見かけるcommit不要なファイルを追記pyproject.toml
にformat用の設定,コマンドを追加
- Rye
- pythonパッケージ管理ツールryeを使う - 肉球でキーボード
- 【Pythonのパッケージ管理に悩む方へ】パッケージ管理ツールRyeを使ってみた | DevelopersIO
- 【Python】Ryeで始めるPythonプロジェクト #初心者 - Qiita
- Pythonライブラリ管理ツール決定版!Ryeを導入してみた
- Pythonのパッケージ管理ツールのコマンド比較表
疑問点や改善などあれば,メンションをつけてIssueにコメントしてください.
本テンプレートの使用に伴い発生する可能性のある,ファイルやデバイスの破損,その他いかなる損害に対しても責任を負いかねます. ご自身の責任において行ってください.