パッケージ管理したい(rye
)
$ rye init プロジェクト名
$ rye pin バージョン
$ rye sync
$ rye add パッケージ名
$ rye add --dev パッケージ名
$ rye sync
$ rye fmt
$ rye lint
$ rye build
$ rye publish
rye
はPython環境の管理とパッケージ管理を一元管理できるツールです。
.python-version
でPython環境を管理し、
pyproject.toml
とrequirements.loc
(とrequirements-dev.lock
)のファイルを使って、依存関係を管理できます。
インストールしたい
$ brew install rye
$ rye --version
rye 0.39.0
commit: 0.39.0 (2024-08-21)
platform: macos (aarch64)
self-python: cpython@3.12.2
symlink support: true
uv enabled: true
$ which -a rye
/opt/homebrew/bin/rye
~/.local/share/mise/installs/rye/latest/bin/rye
~/.rye/shims/rye
新規プロジェクトしたい(rye init
)
$ rye init PROJECT_NAME
success: Initialized project in ./PROJECT_NAME
Run `rye sync` to get started
$ tree PROJECT_NAME
PROJECT_NAME
├── .git/
├── .gitignore
├── .python-version
├── README.md
├── pyproject.toml
└── src
└── project_name
└── __init__.py
$ rye init PROJECT_NAME
error: pyproject.toml already exists
init
コマンドでプロジェクトを初期化できます。
Git関係のファイルも自動で生成されます。
同名のプロジェクトがすでに存在する場合は、エラーになります
プロジェクト名を省略した場合は、カレントディレクトリが初期化されます。
$ rye init --script PROJECT_NAME
PROJECT_NAME
├── README.md
├── pyproject.toml
└── src
└── project_name
├── __init__.py
└── __main__.py
--script
オプションでスクリプト/CLIの作成に適したディレクトリ/ファイル構造を作成できます。
$ rye init --license ライセンス名
PROJECT_NAME
├── LICENSE.txt
├── README.md
├── pyproject.toml
└── src
└── project_name
└── __init__.py
--license
オプションで、指定したライセンスのLICENSE.txt
を自動で生成できます。
ライセンス名が正しくない場合、初期化に失敗します。
パッケージを追加したい(rye add
)
$ rye add パッケージ名
$ rye remove パッケージ名
$ rye add パッケージ名==バージョン
$ rye add パッケージ名 --features パッケージ名
$ rye add --dev パッケージ名
$ rye add --git リポジトリ
$ rye add --url URL
rye add
コマンドでプロジェクトにパッケージを追加できます。
パッケージをインストールしたい(rye sync
)
$ rye sync
$ rye sync --update パッケージ名
$ rye sync --update-all
rye sync
コマンドで、pyproject.toml
にしたがってパッケージをインストールします。
--update
オプションで特定のパッケージを更新できます。
フォーマッターしたい(rye fmt
)
$ rye fmt # ファイル修正
$ rye fmt --check # チェックのみ
fmt
(もしくはformat
)コマンドで、コードをフォーマット(=整形)できます。
フォーマッターはruffを利用します。
フォーマット時のオプションはpyproject.toml
の[tool.ruff.format]
セクション、もしくはruff.toml
、.ruff.toml
で設定できます。
--check
オプションは、フォーマットが必要かどうかのチェックのみで、ファイルは書き換えられません。
CIなどのチェックにいれる場合に有用です。
リンターしたい(rye lint
)
$ rye lint # チェックのみ
$ rye lint --fix # ファイル修正
lint
コマンドで、コーディングスタイルを確認できます。
リンターはruffを利用します。
リンター時のオプションはpyproject.toml
の[tool.ruff.lint]
セクション、もしくはruff.toml
、.ruff.toml
で設定できます。
--fix
オプションは、修正が必要な場合にファイルを書き換えます。
パッケージをビルドしたい(rye build
)
$ rye build
build
コマンドでパッケージをビルドできます。
パッケージを公開したい(rye publish
)
$ rye publish
publish
コマンドでビルドしたパッケージを公開できます。
設定したい(rye config
)
$ rye config --show-path
~/.rye/config.toml
$ rye config --get behavior.use-uv
$ rye config --get behavior.global-python
config
コマンドで設定オプションを確認、変更できます。
デフォルトは~/.rye/config.toml
が対象です。
Python環境したい(rye pin
/ rye toolchain
)
$ rye pin 3.12.5
pinned 3.12.5 in ./.python-version
$ rye sync
Downloading cpython@3.12.5
Checking checksum
Unpacking
Downloaded cpython@3.12.5
...
pin
コマンドでPython環境を指定できます。
その設定は.python-version
に保存されます。
pin
した時点では環境は変わらず、sync
することで切り替えることができます。
指定したバージョンがない場合は、自動ダウンロードがはじまります。
// バージョンを指定してダウンロード
$ rye toolchain fetch 3.12.4
Downloading cpython@3.12.4
Checking checksum
Unpacking
Downloaded cpython@3.12.4
// 利用できるバージョンを確認
$ rye toolchain list
cpython@3.12.5 (~/.rye/py/cpython@3.12.5/bin/python3)
cpython@3.12.4 (~/.rye/py/cpython@3.12.4/bin/python3)
cpython@3.12.2 (~/.rye/py/cpython@3.12.2/bin/python3)
cpython@3.11.8 (~/.rye/py/cpython@3.11.8/bin/python3)
// 不要なバージョンを削除
$ rye toolchain remove 3.12.4
Removed installed toolchain cpython@3.12.4
// パスを指定してローカル環境を使用
$ rye toolchain register パス
また、toolchain
コマンドで、Python環境を操作できます。
$ rye toolchain remove 3.12.5
error: toolchain cpython@3.12.5 is still in use by tool sphinx
$ rye tools uninstall sphinx
Uninstalled sphinx
$ rye tools remove 3.12.5
error: unrecognized subcommand
削除指定したバージョンがどこかで使われている場合は、エラーになります。 その環境を利用しているパッケージ名が表示されるので、まずアンインストールして対応します。
外部パッケージしたい(rye tools
)
$ rye tools list
$ rye tools install パッケージ名
$ rye tools uninstall パッケージ名
tools
コマンドでpipx
のようなことができます。
コマンドは~/.local/bin
に配置されます。
注意
~/.local/bin
はpipx
でインストールされるコマンドと同じパスです。
同名のコマンドがある場合は上書きされます。