1
0

Ryeのはじめかた【Pythonパッケージ管理+Pythonバージョン管理】

Last updated at Posted at 2024-08-01

はじめに

以下の記事でも言及されているように,AnacondaのLicenseが改定されたことによって,Anacondaを使用するのをやめて,違うパッケージ管理ツールに切り替えようと思いました.
そこで,Ryeについて自身で調べたことをまとめました.

Ryeとは

Astralが開発を行っているPythonパッケージ管理ツール.Rustで実装されており高速.
パッケージ管理だけでなく,Pythonのバージョン管理もまとめて行える.

  • Poetroy(パッケージ管理+仮想環境) + pyenv(Pythonバージョン管理)
  • Rye(パッケージ管理+仮想環境+Pythonバージョン管理)

導入

以下の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

コマンド

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

init

ryeプロジェクトの作成

rye init プロジェクト名

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

pin

pythonバージョンの指定

rye pin 3.10

sync

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

rye sync

pyproject.tomlが存在する既存プロジェクトでは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の以下の欄にコマンドを設定することが出来ます.
以下のように設定した場合rye run formatでformatを実行可能

[tool.rye.scripts]
"format" = "ruff format src/"

activate

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

. .venv/bin/activate

deactivate

仮想環境から抜け出す

deactivate

おすすめ設定

  • Ruff
    • 静的コード解析ツール,Formatter&Linter
    • Rustで実装されており,動作が高速
    • VSCodeのRyeの拡張機能もあり
    • Ryeと開発元が同じ
    • Ruffのコマンドをrye runで実行できるように設定すると良い

最後に

少しでもRyeを使う方の参考になれば幸いです.
最後まで読んでいただきありがとうございました.

初期化シェルスクリプト

自作のRyeプロジェクト初期化シェルスクリプトです.新規プロジェクトの作成時にご活用ください.
詳細はREADMEをご確認ください

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0