ツール / VSCode / 環境構築
VSCode × Python — 環境構築と必須 Plugin・便利 Plugin
Python インタープリターの選択・仮想環境(venv / conda)の設定から、 Pylance・Black・Ruff・Jupyter など必須・便利拡張機能まで一挙解説。 データサイエンスから Web アプリ開発まで対応した実践的なセットアップガイドです。
1. Python のインストール
公式サイト(python.org)から 最新の安定版をダウンロードします。2025年時点では Python 3.12 / 3.13 が推奨です。
⚠️ Windows のインストーラー注意点
インストーラー起動時に 「Add Python to PATH」 のチェックボックスを必ずオンにしてください。 この設定を忘れると、コマンドラインから
インストーラー起動時に 「Add Python to PATH」 のチェックボックスを必ずオンにしてください。 この設定を忘れると、コマンドラインから
python コマンドが認識されません。
# バージョン確認
python --version
# または
python3 --version
# pip の確認
pip --version
macOS / Linux では pyenv を使うと複数バージョンの管理が容易です。
# pyenv のインストール
brew install pyenv
# .zshrc に追記
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
# Python をインストール
pyenv install 3.12.3
pyenv global 3.12.3
# 確認
python --version
2. 仮想環境(venv)のセットアップ
プロジェクトごとに仮想環境を作成することで、パッケージのバージョン競合を防げます。
標準の venv を使う方法を解説します。
# プロジェクトルートで仮想環境を作成
python -m venv .venv
# 有効化
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
# Windows (Command Prompt)
.venv\Scripts\activate.bat
# macOS / Linux
source .venv/bin/activate
# 確認(プロンプトに(.venv)が表示されれば OK)
which python # macOS/Linux
where python # Windows
# 無効化
deactivate
VSCode では Ctrl+Shift+P → 「Python: インタープリターを選択」から
作成した .venv を選択することで、自動的に仮想環境が有効化されます。
✅ .venv は .gitignore に追加を推奨
仮想環境フォルダはリポジトリに含める必要はありません。 代わりに
仮想環境フォルダはリポジトリに含める必要はありません。 代わりに
requirements.txt または pyproject.toml でパッケージを管理します。
3. 必須 Plugin
| Plugin 名 | 種別 | 役割 |
|---|---|---|
| Python (Microsoft) | 必須 | Python 拡張の中核。インタープリター管理・デバッグ・テスト実行・Jupyter ノートブックサポートの基盤となる。 これだけで Python ファイルの基本的な実行・デバッグが可能になる。 |
| Pylance (Microsoft) | 必須 | 高性能な言語サーバー(Pyright ベース)。型チェック・コード補完・インポート解決・ホバー情報が非常に高速。 Python 拡張とセットで動作し、インテリセンスの品質を大幅に向上させる。 |
| Ruff | 必須 | Rust 製の超高速 Linter & Formatter。Flake8・isort・Black などを一本化できる。 保存時の自動整形と import ソートを同時にこなし、CI との統合も容易。現在最も推奨される選択肢。 |
4. 便利 Plugin
コード整形・品質
| Plugin 名 | 種別 | 役割 |
|---|---|---|
| Black Formatter | 便利 |
「The Uncompromising Code Formatter」。設定不要で一貫したスタイルを強制する。
Ruff の formatter(ruff format)と互換性があるため、どちらか一方を選べばよい。
|
| isort | 便利 | import 文を自動整列(stdlib → third-party → local の順)する。 Ruff を使う場合は Ruff 側で isort 相当の整列が含まれるため不要。 |
| autoDocstring | 便利 |
関数・クラスの docstring テンプレートを自動生成。
Google / NumPy / Sphinx スタイルを選択可能。""" を入力してタブを押すだけで展開。
|
データサイエンス・Jupyter
| Plugin 名 | 種別 | 役割 |
|---|---|---|
| Jupyter | 便利 |
VSCode 内で .ipynb ファイルを直接開いてセル実行・変数ウォッチ・グラフ表示ができる。
データサイエンス・機械学習では必須レベルの拡張。
|
| Jupyter Keymap | 便利 | Jupyter Notebook 標準のキーバインドを VSCode 上で再現する。元々 Jupyter を使っていた人がスムーズに移行できる。 |
| Data Wrangler | 便利 | pandas DataFrame をスプレッドシート風の UI で可視化・フィルタリング・ソートできる。データ前処理の確認に便利。 |
テスト・デバッグ
| Plugin 名 | 種別 | 役割 |
|---|---|---|
| Python Test Explorer | 便利 | pytest / unittest のテストケースをサイドバーにツリー表示。個別テストの実行・失敗箇所のハイライトが可能。 |
| Error Lens | 便利 | エラー・警告をインラインで行末に表示。問題パネルを開かなくても即座に原因が分かる。Python 以外にも効果的。 |
その他
| Plugin 名 | 種別 | 役割 |
|---|---|---|
| Path Intellisense | 便利 | 文字列リテラル内のファイルパスを補完。open("./data/ と入力するとファイル候補が表示される。 |
| Python Indent | 便利 | Enter キーを押したときのインデント量を Python の文法に沿って自動調整。ループ・条件分岐の入力が快適になる。 |
| REST Client | 便利 | FastAPI・Flask などで開発した API をエディタ内からテスト。.http ファイルに URL と Body を書いて実行するだけ。 |
| Rainbow CSV | 便利 | CSV ファイルを列ごとに色分け表示。データ分析でよく扱う CSV / TSV の読み取りが格段に楽になる。 |
5. Python 向け settings.json
{
// ── Python インタープリター ───────────────────────
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
// Windows の場合:
// "python.defaultInterpreterPath": "${workspaceFolder}/.venv/Scripts/python.exe",
// ── Pylance(型チェック)───────────────────────────
"python.languageServer": "Pylance",
"python.analysis.typeCheckingMode": "basic", // off / basic / strict
"python.analysis.autoImportCompletions": true,
"python.analysis.indexing": true,
"python.analysis.autoSearchPaths": true,
// ── Ruff(Linter + Formatter) ────────────────────
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
},
// ── テスト ────────────────────────────────────────
"python.testing.pytestEnabled": true,
"python.testing.unittestEnabled": false,
"python.testing.pytestArgs": ["tests"],
// ── 仮想環境 ──────────────────────────────────────
"python.venvPath": "${workspaceFolder}",
"python.terminal.activateEnvironment": true
}
6. Linting・フォーマット設定(Black / Ruff)
Ruff の設定ファイル(pyproject.toml)
[tool.ruff]
line-length = 120
target-version = "py312"
[tool.ruff.lint]
# E: pycodestyle errors, W: warnings, F: pyflakes, I: isort, UP: pyupgrade
select = ["E", "W", "F", "I", "UP", "B", "C4", "SIM"]
ignore = ["E501"] # 行長は formatter に任せる
[tool.ruff.lint.isort]
known-first-party = ["mypackage"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
Black の設定ファイル(pyproject.toml への追記)
Ruff formatter を使わず Black を使う場合の設定例です。
[tool.black]
line-length = 120
target-version = ["py312"]
include = '\.pyi?$'
extend-exclude = '''
/(
| .venv
| dist
| build
)/
'''
7. デバッグ設定
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
},
{
"name": "Python: FastAPI",
"type": "debugpy",
"request": "launch",
"module": "uvicorn",
"args": ["main:app", "--reload", "--port", "8000"],
"console": "integratedTerminal",
"justMyCode": true
},
{
"name": "Python: pytest",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": ["tests/", "-v"],
"console": "integratedTerminal",
"justMyCode": false
}
]
}
✅ ブレークポイントのコツ
行番号左側をクリックして赤丸を置くか、コード内に
行番号左側をクリックして赤丸を置くか、コード内に
breakpoint()(Python 3.7+)を書くと
デバッガーが自動停止します。breakpoint() は本番環境に残さないよう Ruff の T100 ルールで検出できます。
8. まとめ
| カテゴリ | Plugin / 設定 | ポイント |
|---|---|---|
| 必須 | Python + Pylance + Ruff | この3本が Python 開発の核心。まずここから始める。 |
| 仮想環境 | venv / pyenv | プロジェクトごとに .venv を作成し、インタープリターを VSCode で選択。 |
| Formatter | Ruff(推奨)または Black | 保存時の自動整形で常にコードスタイルを統一。 |
| DS・ML | Jupyter + Data Wrangler | ノートブック操作・DataFrame 可視化を VSCode 内で完結。 |
| 品質 | Error Lens | エラーをインライン表示で問題の発見を高速化。 |
| デバッグ | launch.json | FastAPI・pytest 向け設定を入れておくと毎回設定不要。 |