8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

今巷で話題のRyeについて調べてみた

Last updated at Posted at 2024-06-05

話題のRyeについて調べてみた

Ryeは、開発プロセスを簡素化・設定の手間を減らし、Pythonプロジェクトの全体的な開発者体験を向上させます。Ryeはシンプルで軽量な設計を持ち、またキャッシュを利用してインストール時間を短縮できる特徴などを持つため、Poetryやpipと比べて依存関係の管理やインストールを速くすることができます。

Ryeの概要

Ryeは、Pythonのパッケージマネージャーおよび環境管理ツールの一つで、迅速かつ効率的にPythonの開発環境を構築するためのツールです。Ryeは、特に以下の点で注目されています。

軽量で高速

Ryeは軽量で、高速に動作することを重視しています。これは、特に大規模なプロジェクトや複数のプロジェクトを管理する場合に有利です

依存関係の管理

Ryeは依存関係の管理を簡素化し、必要なライブラリを迅速にインストールおよび更新することができます。また、依存関係の解決に優れ、バージョンの競合を最小限に抑えます

環境の分離

仮想環境の管理を容易にし、プロジェクトごとに異なるPythonバージョンやライブラリのバージョンを使用することができます

統合的なツール

Ryeは、パッケージのインストール、アップデート、アンインストールだけでなく、スクリプトの実行、仮想環境の作成と管理、依存関係の解決など、開発者が必要とする多くの機能を一つのツールで提供します

ユーザーフレンドリーなインターフェース

コマンドラインインターフェース(CLI)が使いやすく設計されており、直感的に操作できます

Ryeは、pipやcondaの代替または補完として利用されることを目指しており、特に速度と効率性を求める開発者にとって有力な選択肢となります。

インストール手順

Mac
Homebrewがない場合

下記のコマンドを実行

terminal
curl -sSL https://install.ryeup.com | sh
Homebrewがある場合

下記のコマンドを実行

terminal
brew install rye
Windows

下記のコマンドを実行

powershell
irm https://install.ryeup.com -useb | iex

インストールの確認

下記のコマンドが実行できることを確認する

terminal
rye --version

下記の内容が表示されたら正常にインストールができています。

terminal
rye 0.34.0
commit: 0.34.0 (2024-05-20)
platform: macos (aarch64)
self-python: not bootstrapped (target: cpython@3.12)
symlink support: true
uv enabled: true

よく使うコマンド

プロジェクトの初期化

プロジェクトの初期化を行います。このコマンドを実行すると、プロジェクトディレクトリ内に基本的な構成ファイルが生成されます。

terminal
rye init
パッケージをプロジェクトに追加

指定したパッケージをプロジェクトに追加します。依存関係の解決とパッケージのインストールが自動的に行われます。

terminal
rye add <パッケージ名>
パッケージを削除
terminal
rye remove <パッケージ名>

指定したパッケージをプロジェクトから削除します。

仮想環境を設定する

pyproject.toml に基づいてプロジェクトの依存関係を同期します。このコマンドは、必要なパッケージをインストールし、仮想環境を設定します。

terminal
rye sync
コマンド実行

プロジェクトの仮想環境内で任意のコマンドを実行します。

terminal
rye run <コマンド>
バージョンのインストール

特定のPythonバージョンをインストールします。

terminal
rye install <Pythonバージョン>
バージョンを指定する

プロジェクトで使用するPythonバージョンを指定します。

terminal
rye use <Pythonバージョン>
パッケージとバージョンを表示する

インストールされているパッケージとそのバージョンを表示します。

terminal
rye list
最新バージョンにアップグレードする

指定したパッケージを最新バージョンにアップグレードします。

terminal
rye upgrade <パッケージ名>
pyproject.lock ファイルを生成する

依存関係を固定し、pyproject.lock ファイルを生成します。これにより、依存関係のバージョンが固定され、再現性のあるビルドが可能になります。

terminal
rye lock

ここで出力されるlockファイルなのですが、poetryとは違ってpipのrequirements.txtと同じ形式で出力されます。さらにはコメントでどのライブラリからの依存かも出力してくれます。Dockerfileを作成するときにコンテナの中にpoetryのようにryeをインストールする必要もないので手間がさらに省けます。

# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
#   pre: false
#   features: []
#   all-features: false
#   with-sources: false
#   generate-hashes: false

-e file:.
annotated-types==0.7.0
    # via pydantic
anyio==4.4.0
    # via httpx
    # via starlette
    # via watchfiles
botocore==1.34.113
    # via boto3
    # via s3transfer
botocore-stubs==1.34.94
    # via boto3-stubs
certifi==2024.2.2
    # via httpcore
    # via httpx
    # via requests
charset-normalizer==3.3.2

同等のプログラムとの比較

pipとの比較

Ryeは、Pythonプロジェクトの統合的な管理を目指したツールであり、特に複雑な依存関係の管理や仮想環境の設定を簡素化することに強みがあります。一方、pipはシンプルで広く普及しており、パッケージ管理に特化しています。

特徴 Rye Pip
目的 パッケージ管理、環境管理、スクリプト実行 パッケージ管理
設計思想 軽量かつ高速、統合的なツールチェーン シンプルで標準的なパッケージ管理
仮想環境管理 内蔵 venvやvirtualenvを使用
依存関係の管理 優れた依存関係解決と固定 基本的な依存関係解決
Pythonバージョン管理 Pythonバージョンのインストールと使用の管理 管理なし(pyenvや他のツールと組み合わせる)
初期化コマンド rye init なし
パッケージの追加  rye add <パッケージ名>  pip install <パッケージ名>
パッケージの削除  rye remove <パッケージ名>  pip uninstall <パッケージ名>
パッケージのリスト表示  rye list  pip list
依存関係の同期  rye sync  なし
依存関係の固定  rye lock  pip freeze > requirements.txt
poetryとの比較

RyeとPoetryはどちらも強力なパッケージおよび環境管理ツールですが、それぞれに独自の特徴と強みがあります。Ryeは軽量で高速なパフォーマンスを重視して設計されており、Poetryは再現性のあるビルドと依存関係の管理を重視しています。

特徴 Rye Poetry
目的 パッケージ管理、環境管理、スクリプト実行 パッケージ管理、環境管理、依存関係管理
設計思想 軽量かつ高速、統合的なツールチェーン 再現性のあるビルド、シンプルな設定
仮想環境管理 内蔵 内蔵
依存関係の管理 優れた依存関係解決と固定 優れた依存関係解決と固定
Pythonバージョン管理 Pythonバージョンのインストールと使用の管理 使用するPythonバージョンの指定が可能
初期化コマンド rye init poetry init
パッケージの追加  rye add <パッケージ名>  poetry add <パッケージ名>
パッケージの削除  rye remove <パッケージ名>  poetry remove <パッケージ名>
パッケージのリスト表示  rye list  poetry show
依存関係の同期  rye sync  poetry install
依存関係の固定  rye lock  poetry lock

失敗談

2024年6月5日時点でバージョン0.34.0であるため、プログラムとしてまだ完璧ではないようです。
機械学習のライブラリである、lightgbmをApple SiliconのMacにインストールするときなどにエラーが発生してしまいます。この時は暫定対応としてpipとの併用が必要になります。

参考資料

8
6
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
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?