/rye-template-simple

package management for Python

Primary LanguageShellMIT LicenseMIT

rye-template-simple

package management for Python

Overview

  • ryeを用いて,pythonとpython packageの管理を行います.
  • シェルスクリプト1つで初期設定が完了します.
  • Linter・FormatterにRuffを採用しています.

Note

本テンプレートは新規プロジェクトの初期化向けのテンプレートとなっています.

プロジェクトの途中からryeを使用する際のスクリプトの使用は推奨していませんが,手順は参考になると思います.

Requirement

以下のinstall方法は更新されている可能性があるので,公式サイトをご確認ください

Linux・macOS

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

Usage

Caution

空のディレクトリで行うことを推奨します.

シェルスクリプト内に現在のディレクトリのsrc/以下をすべて消す操作が含まれているので注意してください.

背景:Featuresをご確認ください

  1. これから使用するプロジェクトのルートに移動する(空のディレクトリ)
  2. setup.shファイルを作成し,本リポジトリ内のsetup.shの内容を貼り付ける
touch setup.sh
  1. パーミッションを与える
chmod +x setup.sh
  1. 実行する
./setup.sh

Option: requirements.txtからパッケージをまとめて追加したい場合

requirements.shファイルを作成し,本リポジトリ内のrequirements.shの内容を貼り付け,パーミッションを与える.

touch requirements.sh
chmod +x requirements.sh

引数にrequirements.txtのパスを指定して,実行.(引数を渡さない場合./requirements.txtになる)

./requirements.sh ./requirements.txt

Command

ryeでよく使うコマンドについて解説

init

ryeプロジェクトの作成

rye init プロジェクト名

src/ディレクトリがすでにある場合はsrc/以下にプロジェクト名/などを作成しない. ただし,buildはsrc/プロジェクト名となっている

pin

pythonバージョンの指定

rye pin 3.10

sync

ライブラリの同期.pythonバージョンの変更や,ライブラリの追加(add)を行った後は必ず行う.

rye sync

add

パッケージの追加(pip install)

pip installの代わりにrye addでパッケージを追加していくのが基本的な使い方です.rye syncも忘れずに

rye add パッケージ名

開発用パッケージの追加(formatやtest用など)

rye add --dev パッケージ名

バージョン指定

rye add "パッケージ名==1.1.1"

remove

パッケージの削除(pip uninstall)

rye remove パッケージ名

run

仮想環境で実行

rye run python 〇〇.py
rye run コマンド

pyproject.tomlの以下の欄にコマンドを設定することが出来ます.

本テンプレートではフォーマットのコマンドを作成しています.

[tool.rye.scripts]

activate

仮想環境に入る(OSによって異なる可能性があります.各自venv等で検索してください)

. .venv/bin/activate

deactivate

仮想環境から抜け出す

deactivate

Features

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をかける設定を追加
  • .gitignoreにpythonでよく見かけるcommit不要なファイルを追記
  • pyproject.tomlにformat用の設定,コマンドを追加

Reference

Contact

疑問点や改善などあれば,メンションをつけてIssueにコメントしてください.

License

本テンプレートの使用に伴い発生する可能性のある,ファイルやデバイスの破損,その他いかなる損害に対しても責任を負いかねます. ご自身の責任において行ってください.

MIT