メインコンテンツへスキップ
Python 開発環境セッティング 2024: VSCode, venv, poetry, ruff pytest そして rye

Python 開発環境セッティング 2024: VSCode, venv, poetry, ruff pytest そして rye

·
技術 Python
近藤 憲児
著者
近藤 憲児
目次

(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 をみんながやり始めたら乗り換えよう。はやくこの環境設定の手順が ”存在する状態” を抜け出したいね。

Related

poetry で ipykernel をインストールすると出る psutil 関連のエラーの対処法
Python 技術
混合行列、適合率、再現率、F値、MCC
技術 AI 数学
スライドパズルの数理
技術 数学 アルゴリズム AI