VS Codeのエージェントモードを拡張するには、を試してください!

Python 設定のリファレンス

Visual Studio Code の Python 拡張機能は、高度な設定が可能です。このページでは、利用できる主な設定について説明します。

VS Code の設定の一般的な情報については、ユーザー設定とワークスペース設定を参照してください。また、定義済み変数のサポートについては、変数リファレンスを参照してください。

一般的な Python 設定

設定
(python.)
既定値 説明
condaPath "conda" conda 実行可能ファイルへのパス。
defaultInterpreterPath "python" Python 拡張機能がワークスペースに初めて読み込まれるときに使用される既定の Python インタープリターへのパス、または Python インタープリターを含むフォルダーへのパス。
${workspaceFolder}${workspaceFolder}/.venv のような変数を使用できます。
フォルダーへのパスを使用すると、プロジェクトで作業するすべての人が、プラットフォームに依存する正確なパスを指定するのではなく、オペレーティング システムに応じて .venv フォルダーに環境を作成できます。その後、settings.json ファイルをソース コード リポジトリに含めることができます。
: ワークスペースのインタープリターが選択された後にこの設定を変更しても、Python 拡張機能によって適用または考慮されることはありません。Python 拡張機能は、この設定を自動的に追加または変更しません。
envFile "${workspaceFolder}/
.env"
環境変数の定義を含むファイルへの絶対パス。
Python 環境の設定 - 環境変数定義ファイルを参照してください。
experiments.enabled true Python 拡張機能での A/B テストを有効にします。有効にすると、提案された機能強化や機能が提供される場合があります。
globalModuleInstallation false --user コマンドライン引数を使用して現在のユーザーのみにパッケージをインストールするか (既定)、グローバル環境のすべてのユーザーにインストールするか (true に設定した場合) を指定します。仮想環境を使用している場合は無視されます。
--user 引数の詳細については、pip - User Installs を参照してください。
interpreter.infoVisibility "onPythonRelated" ステータス バーに選択したインタープリター情報をいつ表示するかを制御します。
既定では、Python 関連のファイルがエディターで開かれている場合にのみ表示されます。
常にステータス バーに表示したい場合は "always" に、完全に非表示にする場合は "never" に設定できます。
pipenvPath "pipenv" アクティベーションに使用する pipenv 実行可能ファイルへのパス。
poetryPath "poetry" Poetry 依存関係マネージャーの実行可能ファイルの場所を、インストールされている場合に指定します。既定値 "poetry" は、実行可能ファイルが現在のパスにあることを前提としています。
Python 拡張機能は、Poetry が利用可能で、ワークスペース フォルダーに poetry.lock ファイルがある場合に、この設定を使用してパッケージをインストールします。
REPL.enableREPLSmartSend true Shift+Enter で Smart Send を利用するかどうかを指定します。Smart Send は、カーソルが置かれているコードを見て、実行可能な最小のコード チャンクを Python REPL に送信し、カーソルを次のコード行に移動させます。
terminal.activateEnvInCurrentTerminal false Python 拡張機能がアクティブ化されたときに、選択された仮想環境を使用して現在開いているターミナルをアクティブ化するかどうかを指定します。
terminal.activateEnvironment true 新しいターミナルが作成されたときに、Python: Select Interpreter コマンドを使用して選択した環境を自動的にアクティブ化するかどうかを示します。
たとえば、この設定が true で仮想環境を選択した場合、拡張機能は新しいターミナルを作成するときに環境の activate コマンド (macOS/Linux では source env/bin/activate、Windows では env\scripts\activate) を自動的に実行します。
terminal.executeInFileDir false 現在のフォルダーではなく、ファイルのディレクトリでファイルを実行するかどうかを示します。
terminal.focusAfterLaunch false Python ターミナルを起動するときに、カーソルのフォーカスをターミナルに切り替えるかどうか。
terminal.launchArgs [] Python: Run Python File in Terminal などのコマンドを使用してファイルを実行するときに、Python インタープリターに渡される起動引数。
launchArgs リストでは、各項目はスペースで区切られたトップレベルのコマンドライン要素です (スペースを含む引用符付きの値は単一のトップレベル要素であり、したがってリスト内の 1 つの項目です)。
たとえば、引数 --a --b --c {"value1" : 1, "value2" : 2} の場合、リスト項目は ["--a", "--b", "--c", "{\"value1\" : 1, \"value2\" : 2}\""] になります。
VS Code はデバッグ中にこの設定を無視します。代わりに launch.json で選択したデバッグ構成の引数を使用するためです。
venvFolders [] 仮想環境が作成されるフォルダーへのパス。
使用される仮想化ツールに応じて、プロジェクト自体 (${workspaceFolder}) にすることも、すべての仮想環境が並んで配置される別のフォルダー (.\envs~/.virtualenvs など) にすることもできます。

デバッガーの設定

一般的なデバッグ

設定
(python.debugpy.)
既定値 説明 関連項目
debugJustMyCode true デバッガーがユーザー作成のコードのみをステップ実行するかどうかを指定します。無効にすると、ライブラリ コードもステップ実行できます。 デバッグ

テストの設定

一般的なテスト

設定
(python.testing.)
既定値 説明 関連項目
autoTestDiscoverOnSaveEnabled true テスト ファイルを保存するときに、テストの自動検出を有効にするか無効にするかを指定します。 テスト
cwd null テスト用のオプションの作業ディレクトリを指定します。 テスト
debugPort 3000 unittest テストのデバッグに使用されるポート番号。 テスト
promptToConfigure true 潜在的なテストが検出された場合に、VS Code がテスト フレームワークを設定するように促すかどうかを指定します。 テスト

unittest フレームワーク

設定
(python.testing.)
既定値 説明 関連項目
unittestArgs ["-v", "-s", ".", "-p", "*test*.py"] unittest に渡す引数。スペースで区切られた各トップレベル要素がリスト内の個別の項目になります。 テスト
unittestEnabled false テスト用に unittest が有効になっているかどうかを指定します。 テスト

pytest フレームワーク

設定
(python.testing.)
既定値 説明 関連項目
pytestArgs [] pytest に渡す引数。スペースで区切られた各トップレベル要素がリスト内の個別の項目になります。pytest-cov がインストールされている状態でテストをデバッグする場合は、これらの引数に --no-cov を含めます。 テスト
pytestEnabled false テスト用に pytest が有効になっているかどうかを指定します。 テスト
pytestPath "pytest" pytest へのパス。pytest が現在の環境の外部にある場合は、完全パスを使用します。 テスト

コード分析設定

IntelliSense エンジンの設定

注: 言語サーバーの設定を変更したことがない場合、言語サーバーは「Default」設定値によって Pylance に設定されています。

設定
(python.)
既定値 説明
languageServer 既定値 言語サーバーの種類を定義します (Default, Pylance, Jedi, および None)。

Python 言語サーバーの設定

Pylance 言語サーバー

言語サーバーの設定は、python.languageServerPylance または Default の場合に適用されます。言語サーバーで問題が発生した場合は、言語サーバーリポジトリの トラブルシューティングを参照してください。

設定
(python.analysis.)
既定値 説明
aiCodeActions true 特定の AI 支援コード アクションを有効にするかどうか。GitHub Copilot Chat 拡張機能が有効になっている必要があります。
受け入れられる値は、コード アクションをキー、ブール値を値とするオブジェクトです。
キーとして使用できるコード アクション
  • implementAbstractClasses: 抽象クラスから継承されたクラスのメソッドを実装するコード アクションを有効にします。GitHub Copilot からの AI 提案を使用してメソッド本体を入力します。
使用例: {"implementAbstractClasses": true}
autoFormatStrings false 文字列内で "{" を入力したときに、自動的に "f" を接頭辞として付けるかどうか。
autoImportCompletions false 補完における自動インポートの提供を制御します。利用可能な値は truefalse です。
autoIndent true Python コードの入力時に、言語セマンティクスに基づいてインデントを自動的に調整するかどうか。
受け入れられる値は true または false です。
autoSearchPaths true src のような事前定義された名前に基づいて検索パスを自動的に追加するかどうかを示します。利用可能な値は truefalse です。
completeFunctionParens false 関数の補完に括弧を追加します。受け入れられる値は truefalse です。
diagnosticMode openFilesOnly 言語サーバーが問題を分析するコード ファイルを指定します。
利用可能な値は workspaceopenFilesOnly です。
diagnosticSeverityOverrides {} ユーザーが個々の診断の重要度レベルを上書きできるようにします。
各ルールで利用可能な重要度レベルは、error (赤い波線)、warning (黄色い波線)、information (青い波線)、および none (ルール無効) です。
診断の重要度ルールに使用するキーについては、以下の「診断の重要度ルール」セクションを参照してください。
enableEditableInstalls false PEP 660 で定義されている編集可能モード (pip install -e .) でインストールされたパッケージのインポート パスを解決することで、IntelliSense のサポートを向上させます。
exclude [] 分析に含めるべきでないディレクトリまたはファイルのパス。
これらは python.analysis.include 設定にリストされているディレクトリを上書きし、特定のサブディレクトリを除外できるようにします。
この exclude 設定にリストされているファイルは、除外リストにないソース ファイルから参照/インポートされている場合、分析に含まれる可能性があることに注意してください。
パスには、** (ディレクトリまたは複数レベルのディレクトリ)、* (0 個以上の文字のシーケンス)、または ? (1 文字) などのワイルドカード文字を含めることができます。
除外パスが指定されていない場合、Pylance は自動的に **/node_modules**/\_\_pycache\_\_.git、およびすべての仮想環境ディレクトリを除外します。
extraPaths [] インポート解決のための追加の検索パスを指定します。
文字列として指定されたパスを受け入れ、複数のパスがある場合はカンマで区切ります。例: ["path 1","path 2"]
importFormat absolute モジュールを自動インポートするときの既定の形式を定義します。受け入れられる値は absolute または relative です。
include [] 分析に含めるべきディレクトリまたはファイルのパス。
パスが指定されていない場合、Pylance はワークスペースのルートを含むディレクトリを既定とします。
パスには、** (ディレクトリまたは複数レベルのディレクトリ)、* (0 個以上の文字のシーケンス)、または ? (1 文字) などのワイルドカード文字を含めることができます。
fixAll [] Fix All コマンドまたは source.fixAll コード アクションを実行するときに実行するコード アクションのリスト。
このリストで受け入れられる値
  • source.unusedImports: 開いているファイル内のすべての未使用のインポートを削除します
  • source.convertImportFormat: python.analysis.importFormat 設定に従ってインポートを変換します
includeAliasesFromUserFiles false 自動インポートの提案やインポートの追加クイック フィックスに、ユーザー ファイルからのエイリアス シンボルを含めるかどうか。無効にすると、Pylance はシンボルが定義されている場所からのインポート提案を提供します。有効にすると、シンボルがインポートされている (つまりエイリアスされている) ファイルからのインポート提案も提供します。利用可能な値は truefalse です。
ignore [] インクルードされたファイルまたはインクルードされたファイルの推移的閉包内であっても、診断出力 (エラーと警告) を抑制する必要があるディレクトリまたはファイルのパス。
パスには、** (ディレクトリまたは複数レベルのディレクトリ)、* (0 個以上の文字のシーケンス)、または ? (1 文字) などのワイルドカード文字を含めることができます。
値が指定されていない場合は、python.linting.ignorePatterns の値 (設定されている場合) が使用されます。
indexing true Pylance が起動時にユーザー ファイルとインストール済みのサードパーティ ライブラリをインデックス化して、自動インポート、クイック フィックス、自動補完などの機能でより完全なシンボル セットを提供するかどうかを指定するために使用されます。
受け入れられる値は true または false です。
true に設定すると、Pylance は既定でインストール済みパッケージのトップレベル シンボル (つまり package/__init__.py__all__ 内のシンボル) と、最大 2000 個のユーザー ファイルのすべてのシンボルをインデックス化します。
false に設定すると、Pylance は以前にエディターで開かれたり読み込まれたりしたファイルで既に参照または使用されているシンボルのみを表示します。
inlayHints.callArgumentNames false 呼び出し引数名にインレイ ヒントを表示するかどうか。受け入れられる値は true または false です。
inlayHints.functionReturnTypes false 関数の戻り値の型にインレイ ヒントを表示するかどうか。受け入れられる値は true または false です。
inlayHints.pytestParameters false pytest フィクスチャの引数の型にインレイ ヒントを表示するかどうか。受け入れられる値は true または false です。
inlayHints.variableTypes false 変数の型にインレイ ヒントを表示するかどうか。受け入れられる値は true または false です。
languageServerMode default 開発ニーズに基づいて Pylance のパフォーマンスを最適化するための事前定義された構成を提供します。
利用可能な値は defaultlight です。
default に設定すると、言語サーバーはシステムに過負荷をかけることなく、ほとんどのマシンで十分な機能を提供します。
light に設定すると、軽量でメモリ効率の良いセットアップが可能になります。このモードでは、Pylance を合理化されたテキスト エディターのように機能させるためにさまざまな機能が無効になり、IntelliSense 機能の全範囲を必要とせず、Pylance をできるだけリソースに優しくしたい人に最適です。
各モードによって既定の設定値は以下のように上書きされます
設定 light モード default モード
python.analysis.exclude ["**"] []
python.analysis.useLibraryCodeForTypes false true
python.analysis.enablePytestSupport false true
python.analysis.indexing false true
logLevel Error 言語サーバーによって実行されるログのレベルを指定します。
提供される情報のレベルが増加する順に、可能なログ レベルは ErrorWarningInformation、および Trace です。
nodeArguments "--max-old-space-size=8192" python.analysis.nodeExecutable で定義されたカスタム Node.js 実行可能ファイルにカスタム引数を直接指定します。これを使用して、より多くのメモリを割り当てたり、Node.js の動作を構成したりできます。
Node.js でサポートされている引数のリストを受け入れます。各 "arg=value" はリスト内でカンマで区切る必要があります。
使用例: "python.analysis.nodeArguments": ["--max-old-space-size=8192"]
nodeExecutable "" 使用する Node.js 実行可能ファイルを指定し、Pylance がより多くのメモリを割り当てられるようにします。
受け入れられる値は、実行可能パスを含む文字列、空の文字列、または "auto" です。
空の文字列に設定すると、Pylance は VS Code の node 実行可能ファイルを使用します。"auto" に設定すると、Node.js を自動的にダウンロードします。
packageIndexDepths [] インストールされたパッケージの下で、パッケージごとにインデックス化するレベルの数を上書きするために使用されます。
既定では、トップレベルのモジュールのみがインデックス化されます (深さ = 1)。
サブモジュールをインデックス化するには、インデックス化したいサブモジュールのレベルごとに深さを 1 増やします。
受け入れられる値は、{"name": "package name (str)", "depth": "depth to scan (int)", "includeAllSymbols": "whether to include all symbols (bool)"} のようなオブジェクトのタプルです。
includeAllSymbolsfalse に設定されている場合、各パッケージの __all__ 内のシンボルのみが含まれます。true に設定されている場合、Pylance はファイル内のすべてのモジュール/トップレベルのシンボル宣言をインデックス化します。
使用例: [{"name": "sklearn", "depth": 2, "includeAllSymbols": true}, {"name": "matplotlib", "depth": 3, "includeAllSymbols": false}]
stubPath ./typings カスタム型スタブを含むディレクトリへのパスを指定します。各パッケージの型スタブ ファイルは、それぞれのサブディレクトリにあることが期待されます。
typeCheckingMode off 実行する型チェック分析のレベルを指定します。
利用可能な値は offbasic、および strict です。
off に設定すると、型チェック分析は行われません。未解決のインポート/変数の診断が生成されます。
basic に設定すると、型チェックに関連しないルール (off のすべてのルール) と、基本的な型チェック ルールが使用されます。
strict に設定すると、最高レベルのエラー重要度のすべての型チェック ルール (offbasic カテゴリのすべてのルールを含む) が使用されます。
useLibraryCodeForTypes true 型スタブが見つからない場合に、パッケージのソース コードを解析します。利用可能な値は truefalse です。
userFileIndexingLimit 2000 Pylance がワークスペースでインデックス化するユーザー ファイルの最大数を設定します。-1 に設定すると、Pylance はすべてのファイルをインデックス化します。
ファイルのインデックス化はパフォーマンスを大量に消費するタスクであることに注意してください。

診断の重要度ルール

このセクションでは、次の例に示すように、python.analysis.diagnosticSeverityOverrides 設定を使用してカスタマイズできるすべての利用可能なルールについて詳しく説明します。

{
  "python.analysis.diagnosticSeverityOverrides": {
    "reportUnboundVariable": "information",
    "reportImplicitStringConcatenation": "warning"
  }
}
説明
reportAssertAlwaysTrue おそらく常にアサートする 'assert' ステートメントの診断。これはプログラミング エラーを示している可能性があります。
reportCallInDefaultInitializer 既定値の初期化式内での関数呼び出しの診断。このような呼び出しは、モジュールの初期化時に実行される高コストの操作をマスクする可能性があります。
reportConstantRedefinition 名前がすべて大文字で、アンダースコアと数字で構成される変数を再定義しようとする試みの診断。
reportDuplicateImport 複数回インポートされたシンボルまたはモジュールの診断。
reportFunctionMemberAccess 関数でのメンバー アクセスの診断。
reportGeneralTypeIssues 一般的な型の不整合、サポートされていない操作、引数/パラメーターの不一致などの診断。これは、他のルールでカバーされていない基本的な型チェック ルールのすべてをカバーします。構文エラーは含まれません。
reportImportCycles 循環的なインポート チェーンの診断。これらは Python ではエラーではありませんが、型分析を遅くし、しばしばアーキテクチャのレイヤー化の問題を示唆します。一般的に、これらは避けるべきです。
reportImplicitStringConcatenation 互いに続く 2 つ以上の文字列リテラル (暗黙的な連結を示す) の診断。これは悪い習慣と見なされ、しばしばカンマの欠落などのバグをマスクします。
reportIncompatibleMethodOverride 基底クラスの同名のメソッドを互換性のない方法 (パラメーター数の間違い、互換性のないパラメーター型、または互換性のない戻り値の型) でオーバーライドするメソッドの診断。
reportIncompatibleVariableOverride 基底クラスの同名のシンボルを、基底クラスのシンボル型と互換性のない型でオーバーライドするクラス変数宣言の診断。
reportInvalidStringEscapeSequence 文字列リテラル内で使用される無効なエスケープ シーケンスの診断。Python 仕様では、このようなシーケンスは将来のバージョンで構文エラーを生成することを示しています。
reportInvalidStubStatement スタブ ファイル内に現れるべきではないステートメントの診断。
reportInvalidTypeVarUse 関数シグネチャにおける型変数の不適切な使用の診断。
reportMissingImports 対応するインポートされた python ファイルまたは型スタブ ファイルがないインポートの診断。
reportMissingModuleSource 対応するソース ファイルがないインポートの診断。これは、型スタブが見つかったがモジュール ソース ファイルが見つからなかった場合に発生し、この実行環境を使用するとコードが実行時に失敗する可能性があることを示します。型チェックは型スタブを使用して行われます。
reportMissingTypeArgument ジェネリック クラスが明示的または暗黙的な型引数なしで使用された場合の診断。
reportMissingTypeStubs 対応する型スタブ ファイル (typeshed ファイルまたはカスタム型スタブ) がないインポートの診断。型チェッカーは、最善の分析を行うために型スタブを必要とします。
reportOptionalCall Optional 型の変数を呼び出そうとする試みの診断。
reportOptionalContextManager Optional 型をコンテキスト マネージャーとして (with ステートメントのパラメーターとして) 使用しようとする試みの診断。
reportOptionalIterable Optional 型を反復可能な値として (例えば for ステートメント内で) 使用しようとする試みの診断。
reportOptionalMemberAccess Optional 型の変数のメンバーにアクセスしようとする試みの診断。
reportOptionalOperand Optional 型を二項演算子または単項演算子 ('+', '==', 'or', 'not' など) のオペランドとして使用しようとする試みの診断。
reportOptionalSubscript Optional 型の変数をサブスクリプト (インデックス) しようとする試みの診断。
reportPrivateUsage プライベートまたはプロテクテッドな変数や関数の不正な使用に関する診断。プロテクテッドなクラスメンバーは単一のアンダースコア _ で始まり、サブクラスからのみアクセスできます。プライベートなクラスメンバーは二重のアンダースコアで始まり、二重のアンダースコアで終わらず、宣言しているクラス内からのみアクセスできます。クラス外で宣言された変数や関数は、名前が単一または二重のアンダースコアで始まる場合、プライベートと見なされ、宣言しているモジュールの外からはアクセスできません。
reportPropertyTypeMismatch セッターに渡される値の型がゲッターによって返される値に割り当て可能でないプロパティの診断。このような不一致は、変数のように振る舞うことを意図したプロパティの意図された使用法に違反します。
reportSelfClsParameterName インスタンス メソッドでの "self" パラメーター、およびクラス メソッドでの "cls" パラメーターの欠落または誤った名前の診断。メタクラス ("type" から派生するクラス) のインスタンス メソッドは、インスタンス メソッドに "cls" を使用することが許可されています。
reportUndefinedVariable 未定義の変数の診断。
reportUnboundVariable 未束縛およびおそらく未束縛の変数の診断。
reportUnknownArgumentType 未知の型を持つ関数またはメソッドの呼び出し引数の診断。
reportUnknownLambdaType 未知の型を持つラムダの入力または戻りパラメーターの診断。
reportUnknownMemberType 未知の型を持つクラスまたはインスタンス変数の診断。
reportUnknownParameterType 未知の型を持つ関数またはメソッドの入力または戻りパラメーターの診断。
reportUnknownVariableType 未知の型を持つ変数の診断。
reportUnnecessaryCast 静的に不要と判断される 'cast' 呼び出しの診断。このような呼び出しは、時にプログラミング エラーを示していることがあります。
reportUnnecessaryIsInstance 結果が静的に常に true または常に false と判断される 'isinstance' または 'issubclass' 呼び出しの診断。このような呼び出しは、しばしばプログラミング エラーを示しています。
reportUnusedCallResult 結果が消費されず、None でもない呼び出し式の診断。
reportUnusedClass アクセスされないプライベート名 (アンダースコアで始まる) を持つクラスの診断。
reportUnusedCoroutine Coroutine を返し、その結果が消費されない呼び出し式の診断。
reportUnusedFunction アクセスされないプライベート名 (アンダースコアで始まる) を持つ関数またはメソッドの診断。
reportUnusedImport そのファイル内で参照されないインポートされたシンボルの診断。
reportUnusedVariable アクセスされない変数の診断。
reportUnsupportedDunderAll __all__ に対して実行されたサポートされていない操作の診断。
reportWildcardImportFromLibrary 外部ライブラリからのワイルドカード インポートの診断。

オートコンプリート設定

設定
(python.autoComplete.)
既定値 説明 関連項目
extraPaths [] オートコンプリート データを読み込む追加パッケージの場所を指定します。 編集

定義済み変数

Python 拡張機能の設定は、定義済み変数をサポートしています。一般的な VS Code の設定と同様に、変数は ${variableName} 構文を使用します。具体的には、拡張機能は次の変数をサポートしています。

  • ${cwd} - 起動時のタスクランナーの現在の作業ディレクトリ

  • ${workspaceFolder} - VS Code で開いているフォルダーのパス

  • ${workspaceRootFolderName} - スラッシュ (/) なしの VS Code で開いているフォルダーの名前

  • ${workspaceFolderBasename} - スラッシュ (/) なしの VS Code で開いているフォルダーの名前

  • ${file} - 現在開いているファイル

  • ${relativeFile} - workspaceFolder からの相対パスで表した、現在開いているファイル

  • ${relativeFileDirname} - workspaceFolder からの相対パスで表した、現在開いているファイルのディレクトリ名

  • ${fileBasename} - 現在開いているファイルのベース名

  • ${fileBasenameNoExtension} - ファイル拡張子なしの、現在開いているファイルのベース名

  • ${fileDirname} - 現在開いているファイルのディレクトリ名

  • ${fileExtname} - 現在開いているファイルの拡張子

  • ${lineNumber} - アクティブなファイルで現在選択されている行番号

  • ${selectedText} - アクティブなファイルで現在選択されているテキスト

  • ${execPath} - 実行中の VS Code 実行可能ファイルへのパス

定義済み変数と使用例に関する追加情報については、一般的な VS Code ドキュメントの変数リファレンスを参照してください。

次のステップ

  • Python 環境 - 編集およびデバッグに使用する Python インタープリターを制御します。
  • コードの編集 - Pythonのオートコンプリート、IntelliSense、書式設定、リファクタリングについて学びます。
  • Linting - 様々なPythonリンターを有効にし、構成し、適用します。
  • デバッグ - Pythonをローカルおよびリモートでデバッグする方法を学びます。
  • テスト - テスト環境を構成し、テストを発見、実行、デバッグします。