Contents

Pythonのパッケージ管理ツールの比較 | Rye vs Poetry+pyenv

まとめ

項目RyePoetry
Documenthttps://rye.astral.sh/https://python-poetry.org/docs/
GitHubhttps://github.com/astral-sh/ryehttps://github.com/python-poetry/poetry
Star数https://img.shields.io/github/stars/astral-sh/rye.svghttps://img.shields.io/github/stars/python-poetry/poetry.svg
実装言語RustPython
管理対象Pythonバージョン / パッケージ / 仮想環境パッケージ / 仮想環境
依存関係の管理pyproject.tomlpyproject.toml
ロックファイルrequirements.lockpoetry.lock

開発環境整備の手順と速度検証

  • 各コマンドの速度検証には、Powershellのコマンド Measure-Command {速度計測対象コマンド} を使用
  • 確認に使用したVersionは以下の通り
    • Python : 3.10.9
    • Rye : 0.1.0
    • Poetry : 1.6.1
    • virtualenv : 20.25.0

Rye

  • RyeでPython 3.10.9はインストール済みの状態で速度を計測する
  1. プロジェクトをRyeで管理
    • プロジェクトを新規作成する場合:rye init {プロジェクト名} → 0.3 秒
    • 既存プロジェクトを管理対象とする場合:rye init → 0.2 秒
    • すでにpyproject.toml, requirements.lockがある場合:rye sync
  2. 仮想環境で使用するPythonバージョンの選択:rye pin 3.10.9 → 0.1 秒
  3. 選択したPythonバージョンで仮想環境を作成:rye sync → 2.5 秒
  4. 仮想環境のアクティベート:.\.venv\Scripts\activate → 0.1 秒
  5. 依存関係の追加:rye add pandas → 9.0 秒
  6. ライブラリのインストール:rye sync → 0.5 秒
  7. インストールしたライブラリの確認:rye list

Poetry

  • pyenvでPython 3.10.9はインストール済みの状態で速度を計測する
  • Poetryの仮想環境は、内部的にはvirtualenvを使用している
  1. 仮想環境をプロジェクト配下に作成する設定:poetry config virtualenvs.in-project true --local → 1.3 秒
  2. プロジェクトをPoetryで管理
    • プロジェクトを新規作成する場合:poetry new {プロジェクト名} → 1.6 秒
    • 既存プロジェクトを管理対象とする場合:poetry init → 3.3 秒 (Enter連打)
    • すでにpyproject.toml, poetry.lockがある場合:poetry install
  3. 仮想環境で使用するPythonバージョンの選択:pyenv local 3.10.9 → 1.1 秒
  4. 選択したPythonバージョンで仮想環境を作成:poetry env use python → 5.4 秒
  5. 仮想環境のアクティベート:.\.venv\Scripts\activate → 0.1 秒
  6. ライブラリのインストール:poetry add pandas → 15.5 秒
  7. インストールしたライブラリの確認:poetry show

(補足) venv/virtualenv

  • どちらも仮想環境を作成したいバージョンのPythonをインストールしておく必要がある

venv

  • Python 3.3以降のPythonにおいて、ビルトインされている機能のため、pip install が不要
  • 選択されているPythonインタープリターに対応した仮想環境を作成
  1. 仮想環境の作成:python3 -m venv venv → 16.1 秒
  2. 仮想環境のアクティベート:.\venv\Scripts\activate → 0.4 秒
  3. ライブラリのインストール:pip install pandas → 61.8 秒
  4. インストールしたライブラリの確認:pip list

virtualenv

  • Pythonのパッケージであり、pip install virtualenv でインストール
  • 任意のPythonバージョンを指定して仮想環境を作成可能
  1. 仮想環境の作成:python3 -m virtualenv -p python3.10 venv → 5.0 秒
  2. 仮想環境のアクティベート:.\venv\Scripts\activate → 0.1 秒
  3. ライブラリのインストール:pip install pandas → 80.7 秒
  4. インストールしたライブラリの確認:pip list

参考情報