Open12
asdf + uv + Rye + Ruffを使った最新のPython環境構築
MacOSのバージョン
$ system_profiler SPSoftwareDataType
Software:
System Software Overview:
System Version: macOS 13.6.5 (22G621)
Kernel Version: Darwin 22.6.0
asdfでPythonをインストールする
$ asdf install python 3.12.2
$ asdf global python 3.12.2
$ python --version
Python 3.12.2
Upgrade pip
pip install --upgrade pip
Install uv
pip install uv
仮想環境の作成
uv venv
.venvが作らる
ls -la
Permissions Size User Group Date Modified Name
drwxr-xr-x - kento staff 29 Mar 02:03 .
drwxr-xr-x - kento staff 29 Mar 02:03 ..
drwxr-xr-x - kento staff 29 Mar 02:03 .venv
仮想環境のactivate
source .venv/bin/activate
$ which python
.../.venv/bin/python
- uvはcargo for python を目指しているようだがまだ不完全な部分があるよう
- ryeも試す
Install rye
何も読まず
pip install rye
してコケた
気を取り直してInstall Rye
curl -sSf https://rye-up.com/get | bash
いい感じ
いくつか選択肢に答える
This script will automatically download and install rye (latest) for you.
######################################################################## 100.0%
Welcome to Rye!
This installer will install rye to /Users/kento/.rye
This path can be changed by exporting the RYE_HOME environment variable.
Details:
Rye Version: 0.31.0
Platform: macos (aarch64)
✔ Continue? · yes
✔ Select the preferred package installer · uv (fast, recommended)
✔ What should running `python` or `python3` do when you are not inside a Rye managed project? · Run a Python installed and managed by Rye
✔ Which version of Python should be used as default toolchain? · cpython@3.12
Installed binary to /Users/kento/.rye/shims/rye
Detected outdated rye internals. Refreshing
Bootstrapping rye internals
Found a compatible Python version: cpython@3.11.3
Updated self-python installation at /Users/kento/.rye/self
The rye directory /Users/kento/.rye/shims was not detected on PATH.
It is highly recommended that you add it.
✔ Should the installer add Rye to PATH via .profile? · yes
Added to PATH.
note: for this to take effect you will need to restart your shell or run this manually:
source "$HOME/.rye/env"
To make it work with zsh, you might need to add this to your .zprofile:
source "$HOME/.rye/env"
For more information read https://rye-up.com/guide/installation/
All done!
zshの設定
source "$HOME/.rye/env"
を.zshrcに追加
$ which rye
~/.rye/shims/rye
プロジェクト初期化
rye init .
いけた。
uvと同じオーナーが作っているRuffも後で試したい。
syncせえということらしい
rye sync -f
これで、lockファイルが生成される。
requirements-dev.lock
requirements.lock
もう一度activate
先程の.venvを削除したのちにもう一度 rye sync
する
source .venv/bin/activate
rye init --script foo
で実行形式のプロジェクトを作るということらしいので、やりなおし
pyproject.tomlとスクリプトを引っ越してきただけだが、
rye sync
が必要でそのあと
rye run foo
ができる
Ruffを入れる
rye add --dev ruff
いけた
$ ruff check
$ ruff format
formatは差分に対してのみ作用する?
現状はryeのバックエンドにuvが使えるようだが、将来的にこれらが統合されるという噂もある。
そこまで深追いせず。