Python 開発環境
ドキュメント:
Using Python Environments | Visual Studio Code Docs [Official]
導入
手順
- Python をインストールする。
- VSCode で使用するインタープリターとして設定する。
- デバッガーを構成する。
ドキュメント:
Get Started Tutorial for Python | Visual Studio Code [Official]
参考:
Visual Studio Code で Python 環境構築 – Qiita
Visual Studio Code で Python 開発環境を整える – Qiita
インテリセンス/コード補完
設定ファイル settings.json
を開いて、python.autoComplete.extraPaths
にモジュールのパスを追加する。
参考:
python.autoComplete.extraPaths を設定し、外部モジュールのインテリセンスを有効にする | ざきの学習帳
インタープリターを指定する
設定ファイル settings.json
を開いて、python.pythonPath
にインタープリター (Python 実行バイナリ) のパスを指定する。
{
// ...
"python.pythonPath": "C:\\Users\\[User Name]\\AppData\\Local\\Programs\\Python\\Python38\\python.exe",
// ...
}
Code language: JSON / JSON with Comments (json)
参考:
ワークスペース毎に使用する Python 実行環境を切り替える | LogixSquare
Deprecate PythonPath · Issue #11015 · microsoft/vscode-python – GitHub
Flake8
- 文法チェック
- コーディングスタイルの検証 (PEP8)
- 自動整形
入手:
ドキュメント:
Documentation – flake8 | PyCQA
参考:
Pylint の代わりに Flake8 を導入し自動整形を設定する – Qiita
リンターとして Pylint の代わりに Flake8 を導入するメモ | Sweet Escape
Autopep8 と Flake8 を適用する | trelab
リンターを Pylint から Flake8 に切り替える | EC-X
Black と Flake8 を使ってきれいなコードを書く!! | yynsmk’s tech blog
コードフォーマッター (Black)/リンター (Flake8) をセットアップ | ITC Engineering Blog
静的解析/文法チェック
操作
Ctrl
+ Shift
+ M
: 「問題」パネルを開く
ドキュメント:
Linting Python | Visual Studio Code [Official]
参考:
Pylance / Pyright / Mypy – 静的型をする拡張の違い | kamocyc’s blog
自動整形
- Pylint: VSCode でデフォルトのリンター
- Flake8: 複数のライブラリのラッパー
- Autopep8: PEP8 準拠
- Black: 最近人気(?)/ほとんどカスタマイズできない
参考:
formatOnSave で Autopep8 を使って整形する | tech weblog
自動インポート
参考:
auto import extension – Stack Overflow
importmagic implemented by pilat · Pull Request #636 · microsoft/vscode-python – GitHub
how to quickly add `import xxx` to top · Issue #930 · microsoft/vscode-python – GitHub
インタープリター (Interpreter)
プロジェクトで使用するインタープリターを指定するには、プロジェクトの設定ファイル .vscode/settings.json
で python.defaultInterpreterPath
を指定する。
{
// ...
"python.defaultInterpreterPath": "~/.pyenv/pyenv-win/veersions/3.11.x",
// ...
}
Code language: JSON / JSON with Comments (json)
参考:
Cannot select python interpreter · Issue #3535 · microsoft/vscode-python – GitHub
How to setup Visual Studio code to find the Python 3 interpreter in Windows 10? – Stack Overflow
VSCode doesn’t show Poetry virtualenvs – Stack Overflow
コード補完/静的解析で使用するパスを設定する
プロジェクトの設定ファイル .vscode/settings.json
で次の項目を設定する。
python.autoComplete.extraPaths
python.analysis.extraPaths
{
// ...
"python.autoComplete.extraPaths": [
"C:\\Users\\[User Name]\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\xxx-py3.11\\Lib\\site-packages",
// ...
],
"python.analysis.extraPaths": [
"C:\\Users\\[User Name]\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\xxx-py3.11\\Lib\\site-packages",
// ...
],
// ...
}
Code language: JSON / JSON with Comments (json)
Poetry
Poetry で作成した仮想環境 (キャッシュ) のパスを表示するには、プロジェクトフォルダで次のコマンドを実行する。
>poetry env info --path
参考:
reportMissingImports が出るときの対処法 – Qiita
reportMissingImports をなんとかしてコードが補完されるようにする | ネコニウム研究所
import で未解決の警告が出る問題の対策方法 | aburi6800 のブログ
How to Solve Pylance ‘missing imports’ in VSCode (Alin Climente) | DEV Community
problem with module imports – Stack Overflow
Report Missing Imports – Stack Overflow
How do I make Poetry site-packages searchable on VSCode? – Stack Overflow
デバッガー
- 設定ファイル:
launch.json
構成 (Configuration)
name
: 構成の名前type
: デバッガーの種類 (固定値:python
)request
: モードlaunch
: 「program」で指定されたファイルのデバッグを開始するattach
: 実行中のプロセスにデバッガーを接続する
program
: デバッグ対象のファイルを指定するconsole
: プログラムからの出力を表示するコンソールを指定するintegratedTerminal
: VSCode 統合ターミナル (デフォルト)internalConsole
: VSCode 内のデバッグコンソールexternalConsole
: 外部コンソール
ドキュメント:
Debugging Configurations for Python Apps | Visual Studio Code [Official]
Set Configuration Options | Visual Studio Code [Official]
Auto Reload | Visual Studio Code [Official]
学習:
Configure and Run the Debugger – Tutorial | Visual Studio Code [Official]
参考:
VSCode で Python のリモートデバッグ – Qiita
VSCode でリモートデバッグ | ネットワーク管理者 (の卵) 養成講座
不要な import を自動的に削除する
コード:
Remove Unused Imports on Save (jvacek) – GitHub Gist
import 警告/エラー
参考:
外部モジュールをインポートすると、「Unable to import ‘module-name’ pylint(import error)」と表示される – Qiita
PyLint が import でうざい!!!! – Qiita
PyLint の Unable to import の回避方法 | nobu blog
PyDev で発生する Unresolved import error の解決方法 | 親バカエンジニアのナレッジ帳
__init__.py があると、”Unable to import ‘○○○’ pylint(import-error)” になる – スタック・オーバーフロー
unresolved import issue · Issue #3840 · microsoft/vscode-python – GitHub
How to suppress some errors / warnings – Super User
PyLint “Unable to import” error – how to set PYTHONPATH? – Stack Overflow
拡張機能
参考:
VSCode を Python 超特化型にする最高の拡張機能 20選まとめ | ゆるプロ日記
まとめ
Pylint
公式サイト:
Pylint – Code Analysis for Python [Official]
リポジトリ:
PyCQA/pylint: It’s Not Just a Linter that Annoys You! – GitHub
ドキュメント:
Documentation – Pylint | PyCQA
参考:
VSCode で静的コード解析ツール Pylint を使用する | 山pの楽しいお勉強生活
Linter pylint is not installed と表示される – Qiita
Error message “Linter pylint is not installed” – Stack Overflow
Pylance
入手:
Pylance | Visual Studio Marketplace [Official]
参考:
Python の新しい言語サーバー Pylance がプレビューを卒業/Visual Studio Code でリッチな開発支援を実現 | 窓の杜
“Play” is not defined – Pylance (reportUndefinedVariable) – Stack Overflow
Pyright
入手:
Pyright | Visual Studio Marketplace [Official]
リポジトリ:
microsoft/pyright: Static Type Checker for Python – GitHub
Pyre
公式サイト:
入手:
pyre-vscode | Visual Studio Marketplace [Official]
リポジトリ:
facebook/pyre-check: Performant Type-Checking for Python – GitHub
Import Magic
**OBSOLETE**
リポジトリ:
入手:
Import Magic | Visual Studio Marketplace [Official]
Python Language Server
**OBSOLETE**
リポジトリ:
microsoft/python-language-server: Microsoft Language Server for Python – GitHub
参考:
Implement code action for missing imports · Issue #19 · microsoft/python-language-server – GitHub
Autopep8
リポジトリ:
参考:
Visual Studio Code へ Autopep8 を導入する – Qiita
VSCode で Autopep8 と Flake8 を適用する | trelab