Python 開発環境セッティング 2024: VSCode, venv, poetry, ruff pytest そして rye
目次
(2024/04/04 追記) やっぱ rye がいいかも#
Poetry を始める で懸念を表明していた “An Experimental Package Management Solution for Python” という文字列だけれども、最近 rye の repository を見たら消えてる。そうなると rye でいいかも。
.vsocde の各種 JSON#
settings.json
- Formatter や Linter は ruff を使う。 ruff の extention を入れておく。
- ユニットテストは pytest を使う。
launch.json
- debug のところで自動的に出来上がったものなので、特に目新しいものはなし。
.gitignore
- gitignore.io で python, venv, visualstudiocode で生成したものだけど、 .vscode 配下の settings.json やらは commit の対象になる設定なので、ここだけ修正したもの。これがなければ普通に生成したものをそのまま使いたかった。
こういうスクリプトを作っておく。
#!/bin/zsh
# Create the .vscode directory
mkdir -p "$(PWD)/.vscode"
echo "Downloading settings.json from GitHub Gist"
curl -s https://gist.githubusercontent.com/k-kondo-s/1c191a2799937d55f565a8dd377d97cb/raw/0c50e15601ad8a4dfe841c0663a0e8a2c89e78c0/settings.json > "$(PWD)/.vscode/settings.json"
echo "Downloading launch.json from GitHub Gist"
curl -s https://gist.githubusercontent.com/k-kondo-s/a26a15dcab99ef69a465539464a93e16/raw/a51751190fd959bf9d3edfea74a4280ab1c8c341/launch.json > "$(PWD)/.vscode/launch.json"
echo "Downloading .gitignore from GitHub Gist"
curl -s https://gist.githubusercontent.com/k-kondo-s/6b342fd33bd2ebb079f3052957017a10/raw/f94de40cd310403f819bd6ad6ce30e9877873c4f/.gitignore > "$(PWD)/.gitignore"
仮想環境#
venv を使う。使用したい python の version は 本家 から落としてくる。ここは pyenv でもいい。好みの話で、ここは pure さを優先させてるかんじ。そう頻繁にバージョンを変えることもないしね。
以下は python3.11 の仮想環境を作るとき。
python3.11 -m venv .venv
パッケージ管理は poetry を使う。 poetry の install は pipx を使う。 pipx は CLI のインストールに特化した pip. pipx でインストールした python 系の CLI は、それ専用の仮想環境がこしらえられて、それを用いて動くようになっている。つまり、システム側の Python の version が変化しても本質的に無傷。 postry の安定動作のためにも pipx を用いて install する。
poetry を install したら、以下のように始める。
# 情報を見て、ちゃんと .venv を指しているかを確認する
poetry env info
# はじめる
poetry init
あとは Qiita のこの記事を参照 → Poetry を始める
(rye について)#
rye は非常に魅力的ではある。これがスタンダードになれば上のように venv と poetry を分ける必要もない。
しかしながら、まだその時期じゃないのかな? Poetry を始める の最後にも書いたけども。production-use をみんながやり始めたら乗り換えよう。はやくこの環境設定の手順が ”存在する状態” を抜け出したいね。