Open5

VSCode の設定(Python用)

yubeshiyubeshi

前提

  • パッケージ/プロジェクトの管理にはPoetryを使用する。
  • 仮想環境は In-Projectで .venv に作成する。
  • ワークスペースのルートに .env ファイルを作成し、環境変数をセットする
  • .envファイルは .ignore で無視リストに加えておく。これでAPI_KEYなどを.envに分離できる
.vscode/settings.json
{
    "liveServer.settings.root": "/docs/_build/html",
    "python.analysis.typeCheckingMode": "strict",
    "python.analysis.autoImportCompletions": true,
    "python.envFile": "${workspaceFolder}/.env",
    "python.analysis.extraPaths": [
        "${workspaceFolder}/src"
    ],
    "python.analysis.diagnosticMode": "workspace",
    "python.defaultInterpreterPath": "${workspaceFolder}/.venv/Scripts/python",
    "files.exclude": {
        "**/__pycache__": true,
        "**/*.pyc": true
    }
}
.env
PYTHONPATH=./src
pyproject.toml
[tool.poetry]
name = "Project name"
version = "0.1.0"
description = "Project description"
authors = ["Your Name <your.email@example.com>"]
readme = "README.md"
packages = [
    { include = "src", from = "." }
]

[tool.poetry.dependencies]
python = ">=3.12,<3.14"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

project-root/
├─ .vscode/
│   └─ settings.json
│
├─ .env                        # python.envFile で指定
│
├─ .venv/
│   └─ Scripts/
│       └─ python              # python.defaultInterpreterPath で指定される仮想環境Python実行ファイル
│
├─ docs/
│   └─ _build/
│       └─ html/               # liveServer.settings.root で指定されたドキュメントビルド成果物ディレクトリ(Sphinx想定)
│
└─ src/                        # python.analysis.extraPaths に指定されるソースコード配置ディレクトリ
    ├─ __init__.py
    ├─ main.py
    └─ ... (その他のPythonファイル)
yubeshiyubeshi

.venv を in-projectにするために以下の設定を追加

project.toml
[virtualenvs]
in-project = true 
yubeshiyubeshi

Userディレクトリ以下にvenvを作成してしまった場合の対応

環境を削除

poetry env remove python
poetry cache clear . --all

in-project に設定して環境を作成する

pyproject.toml の記述を変更するだけでは設定が反映されない症状が発生した。
コマンドで設定を変更してpoetry insall を意図したとおりにin-projectで.venvが作成された。
(もしかしたらシェルやIDEを再起動すれば良かったのかもしれない)

poetry config virtualenvs.in-project true
poetry install

状態の確認

poetry env info