asdf + Poetry + VSCodeでPython開発環境を作る
前の記事にも書いた通り新しいオモチャ端末を入手したので、ついでに開発環境も色々新しくしてみた。
Poetry
ぶっちゃけ今までPythonのパッケージ管理などしてこなかったのだが、まあ折角なので何か入れてみようと思い、 調べて名前が挙がったのが Pipenv/Poetry/Pyflowだった。 第一印象ではPyflowを使ってみようと思ったのだが、macOS + Python 3.9.0 がサポートされているか怪しかったのでPoetryにした。
brewでインストールできる。
brew install poetry
ついでにzsh completionもセット。公式ドキュメントにはPrezto版のコマンドもあったが、適用方法がよくわからなかったのでzsh版を使う。
mkdir -p ~/.zfunc
poetry completions zsh >> ~/.zfunc/_poetry
あわせて ~/.zshrc
にも追記。
また、configを以下のように変更する。
この変更により仮想環境がプロジェクトの .venv/
配下に作成されるようになるので、VSCodeで実行環境を指定できるようになる。
poetry config virtualenvs.in-project true
プロジェクト作成
適当なディレクトリでPoetryのプロジェクトを立ち上げる。
poetry new
で新規作成してもよいし、既存のディレクトリで poetry init
してもよい。
プロジェクトフォルダで git init
し、ついでに gitignore.io で.gitignoreを作っておく。
git init curl -sSL -o .gitignore https://www.gitignore.io/api/python,vscode
asdfでプロジェクト用の仮想環境を作る。バージョンはPoetryで作成された pyproject.toml
の記述に合わせるか、仮想環境を先に作ってPoetryを合わせる。
asdf local python 3.9.0
linterとformatterをインストールする。今回はlinterに flake8、formatterに yapf を採用した。
poetry add --dev flake8 yapf
このあたりでプロジェクトの実行環境が作成されているはずなので、上述したように .venv/
配下の環境を選択する。
yapfは保存時にかけられるものとして、ここまでの設定を入れた .vscode/settings.json
はこんな感じになる。
{ "python.pythonPath": ".venv/bin/python", "python.linting.pylintEnabled": false, "python.linting.flake8Enabled": true, "python.linting.enabled": true, "python.formatting.provider": "yapf", "[python]": { "editor.formatOnSave": true } }
あとはよしなにコードを書いていけばよい。