個人的Pythonプロジェクト作成手順
新しくプロジェクト(リポジトリ)を作成したいときにやることをまとめておく記事です。変更があったらなるべく更新していきたいと考えています。
パッケージ管理をPoetryで行い、VSCodeでLinter, Formatter (flake8, black, isort) を使用する設定を行うことで、ファイルの設定を行ったときに自動でコード整形等が走るようにします。
あくまでプロジェクト作成時に行う作業について記述するため、PythonやPoetryのインストールについては(ほとんど)触れません。
使用するモジュール
仮想環境、パッケージ管理
- Poetry
formatter
- black
- isort
Linter
- flake8
エディタにはVSCodeを使用します。
上記のformatter, linterの設定も記述します。
Poetryプロジェクトの作成
# 新規プロジェクト
poetry new <project name>
# 既存プロジェクトに追加
poetry init
initの場合はプロジェクト名やら互換性のあるPythonバージョンの指定やら聞かれる。
*PythonのバージョンはOSにインストールされているPythonが使用される。
指定したい場合は事前にバージョンを合わせておく。
私の場合はanyenv + pyenvを使用
# 新しいバージョンのインストール
pyenv install <Pythonのバージョン>
# 使用するバージョンの指定
pyenv global <Pythonのバージョン>
仮想環境の作成
VSCodeを使用する場合、仮想環境作成前に以下の設定をしておく
poetry config virtualenvs.in-project true --local
この設定をしておくことで、仮想環境がプロジェクトと同じディレクトリに作成されるため、
VSCodeがPythonのインタプリンタを認識してくれる。
localオプションをつけることでその設定がプロジェクト内のpoetry.tomlファイル内に記述され保存される
(github等を使用して別PCで作業する時でも同様の設定が引き継がれる)。
仮想環境作成は以下のコマンド
poetry install
依存パッケージの追加
poetry add <package name>
# 開発用パッケージ
poetry add -D <package name>
ここでlinter, formatterをインストールしておく。
poetry add -D flake8 black isort
VSCodeの設定
以下の拡張機能をインストール
- Black Formatter
- Flake8
- isort
- Python
vscodeのsetting.jsonに下記を記述。
{
"editor.formatOnSave": true,
"python.formatting.provider": "none",
"python.linting.flake8Enabled": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"python.linting.flake8Args": [
"--max-line-length",
"150",
"--ignore=W293 E203"
],
"editor.formatOnType": true,
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
}
}
仮想環境で実行
poetry run python <python file>
or
poetry shell
python <python file>
下はpoetry 仮想環境のシェルを立ち上げる。
参考