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 - ユーザーインストールを参照してください。
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: インタープリターの選択コマンドを使用して選択した環境を自動的にアクティベートするかどうかを示します。
たとえば、この設定が true で仮想環境を選択した場合、新しいターミナルを作成するときに、拡張機能は環境の activate コマンドを自動的に実行します (macOS/Linux では source env/bin/activate。Windows では env\scripts\activate)。
terminal.executeInFileDir false 現在のフォルダーではなく、ファイルのディレクトリでファイルを実行するかどうかを示します。
terminal.focusAfterLaunch false Python ターミナルを起動したときに、カーソルフォーカスをターミナルに切り替えるかどうか。
terminal.launchArgs [] Python: ターミナルで Python ファイルを実行などのコマンドを使用してファイルを起動するときに、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 エンジン設定

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

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

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 個以上の文字のシーケンス)、または ? (単一の文字) などのワイルドカード文字を含めることができます。
除外パスが指定されていない場合、Pylance は自動的に **/node_modules**/\_\_pycache\_\_.git、および任意の仮想環境ディレクトリを除外します。
extraPaths [] インポート解決のための追加の検索パスを指定します。
文字列として指定され、複数のパスがある場合はコンマで区切られたパスを受け入れます。例: ["path 1","path 2"]
importFormat absolute モジュールを自動インポートするときの既定の形式を定義します。受け入れられる値は absolute または relative です。
include [] 分析に含めるべきディレクトリまたはファイルのパス。
パスが指定されていない場合、Pylance は既定でワークスペースルートを含むディレクトリを使用します。
パスには、** (ディレクトリまたは複数レベルのディレクトリ)、* (0 個以上の文字のシーケンス)、または ? (単一の文字) などのワイルドカード文字を含めることができます。
fixAll [] すべて修正コマンドまたは source.fixAll コードアクションを実行するときに実行するコードアクションのリスト。
このリストで受け入れられる値
  • source.unusedImports: 開いているファイル内のすべての未使用のインポートを削除します
  • source.convertImportFormat: python.analysis.importFormat 設定に従ってインポートを変換します
includeAliasesFromUserFiles false ユーザーファイルからのエイリアスシンボルを自動インポートの提案やインポート追加クイックフィックスに含めるかどうか。無効にすると、Pylance はシンボルが定義されている場所からのインポート提案を提供します。有効にすると、シンボルがインポートされている (つまりエイリアス化されている) ファイルからのインポート提案も提供します。利用可能な値は truefalse です。
ignore [] 診断出力 (エラーと警告) が抑制されるべきディレクトリまたはファイルのパス。これらが含まれているファイル、または含まれているファイルの推移的閉包内にある場合でも抑制されます。
パスには、** (ディレクトリまたは複数レベルのディレクトリ)、* (0 個以上の文字のシーケンス)、または ? (単一の文字) などのワイルドカード文字を含めることができます。
値が指定されていない場合、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 に設定すると、エラーの最高重大度のすべての型チェックルール (off および basic カテゴリのすべてのルールを含む) が使用されます。
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 コルーチンを返し、その結果が消費されない呼び出し式の診断。
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をローカルおよびリモートでデバッグする方法を学びます。
  • テスト - テスト環境を構成し、テストを発見、実行、デバッグします。