Skip to content

Instantly share code, notes, and snippets.

@yano3nora
Last active June 5, 2023 08:32
Show Gist options
  • Save yano3nora/8d2b2727088a9bf2942824f3680de9d4 to your computer and use it in GitHub Desktop.
Save yano3nora/8d2b2727088a9bf2942824f3680de9d4 to your computer and use it in GitHub Desktop.
Rye - Experimental Python Package Manager. #python

Overview

rye-up.com
mitsuhiko/rye - github.com

  • flask 作者の all in one な python の package manager
  • pyenv 的な python 自体の version 管理も機能として含んでる
  • まだ実験的なリリースだが、かなり使用感はよく、本番利用も全然イケそうに見える
  • venv + pip-tools を裏手で動かして、project ごとの python 仮想環境を透過的に管理するイメージ

Getting Started

# install する
$ curl -sSf https://rye-up.com/get | bash

# path 通す (bashrc 部分はお好みの shell で)
$ echo 'source "$HOME/.rye/env"' >> ~/.bashrc

基本は initpyproject.toml やら作ったあとに、addpyproject.toml の編集後に sync をかけて仮想環境を更新していく感じみたい。

# project の初期化
# rye init . で現在 dir に展開もできる
$ rye init my-app

# python 3.9 利用前提に、.python-version が更新される
# 省略するとその時点の python 最新を使う感じになるみたい
$ rye pin 3.9

# package の追加
$ rye add flask

# 仮想環境の更新
# venv 内に依存が install され requirements.lock などが更新される
$ rye sync

rye init の時点から python などのコマンドを実行すると shell が勝手に venv の python を参照してくれるようになっていて、殆どのケースで activate とかしなくて済むのがとってもお手軽。

本番や CI などでは sync 後に生成される requirements.lock みたいなやつを pip install -r で使えばよさそう。


Tips

Install Pytorch by Index URL

How to add the pytorch package? #182

[project]
dependencies = [
  "torch==1.10.1",
]

[[tool.rye.sources]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu111"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment