基本的な開発環境
後述するAI開発やWebアプリ開発にも必要となる、基本的なPythonの開発環境を整えるには、表1の拡張機能をインストールします。
| 拡張機能 | パブリッシャー | ID | 概要 | 
|---|---|---|---|
| Python(Python extension for Visual Studio Code) | Microsoft | ms-python.python | 3つの拡張機能をまとめたトータルな拡張機能 | 
| Pylance | Microsoft | ms-python.vscode-pylance | 言語サポート | 
| Python Debugger(Python Debugger extension for Visual Studio Code) | Microsoft | ms-python.debugpy | debugpyによるシームレスなデバッグ環境を提供 | 
| Python Environments(*) | Microsoft | ms-python.vscode-python-envs | 仮想環境の管理 | 
Python(Python extension for Visual Studio Code)は拡張機能のパックであり、インストールすれば他の3つの拡張機能がインストールされます。再起動や有効化/無効化の操作も連動しているので便利です。とりあえずは、Python extension for Visual Studio Codeのみを意識しておけばよいでしょう。
[NOTE]Next Edit Suggestions(NES)の無効化
バージョン1.99以降のVS Codeは、既定でGitHub Copilot Next Edit Suggestions(NES)が有効になっており、GitHub CopilotにサインインしているとAI(人工知能)によるコード提案が随時実行されます。拡張機能を積極的に利用したい場合には、この機能を無効にできます(NESがそもそも機能していない場合には、本項の操作は不要です)。
ステータスバーのGitHub Copilotアイコンをクリックして、表示されるメニュー下部の「Python」のチェックを外します(図1)。これで、Pythonファイルに対してはNESが機能しなくなります。他の言語では引き続き機能します。
 
基本的な使い方
ここから、拡張機能を使った開発について流れを見ていきます。といっても、特段の手続きが必要というわけではなく、Pythonファイル(.py)を開いた時点で拡張機能がアクティブになり、Pylanceによるコード補完や型チェック、Python Debuggerによるデバッグ機能が利用できるようになります。
[NOTE]Pythonインタプリタの選択
ステータスバーには、利用するPythonインタプリタが表示されます。これが意図するものではない場合(たとえばmacOSにおいてシステムインストールされているPythonなど)、使いたいインタプリタに切り替えておきます。ステータスバーの該当箇所をクリック、あるいはコマンドパレットを[表示]-[コマンドパレット...]([Command]+[Shift]+[P]/[Ctrl]+[Shift]+[P])から開いて「Python: Select Interpreter」を選択して、一覧からPythonインタプリタを選択します(図2)。
 
コード補完では、キーワードなどを途中まで入力すると、キーワードの候補を提示してくれるので、目的のものがあれば確定できます(図3)。
 
型チェック機能の利用には、Python > Analysis: Type Checking Modeの設定をbasic以上に変更する必要があります。型チェック機能が有効になると、図4のように赤い波線がエラーの箇所に表示され、マウスポインタのホバーでその内容が表示されます。
 
 プログラムの実行やデバッグは、エディタビューの右上にある で行えます。
で行えます。 右の小さな[∨]をクリックして表示されるメニューから[Python デバッガー: Python ファイルのデバッグ]を選ぶと、デバッガによる実行が可能です。
右の小さな[∨]をクリックして表示されるメニューから[Python デバッガー: Python ファイルのデバッグ]を選ぶと、デバッガによる実行が可能です。
 
GitHub Copilot連携
本稿作成時点の最新版であるPylance 2025.8.2では、GitHub Copilot(以降、Copilot)と連携した機能が利用可能になっています。
AIホバーサマリ(AI Hover Summaries)※実験的機能
AIホバーサマリは、ドキュメント化されていないキーワードなどに対して、AIがドキュメントを作成し、ポップアップ表示してくれる機能です。第三者から入手したPythonコードなど、情報が不備なときに役立てることができます。CopilotのPro以上のプランで利用可能です。
利用するには、設定からPython › Analysis: Ai Hover Summaries(python.analysis.aiHoverSummaries)を有効にします。この上で、例えばユーザ定義関数であるeuclidが何をやっているのか表示させてみます(図6)。
 
拡張機能からのCopilot言語モデルの利用について確認されることがありますが、承認すれば図6のように通常の構文に加えてCopilotが作成した説明文も表示されます。この場合は、ユークリッド距離を求める関数ということが明記されています。
コードスニペット実行ツール(Run Code Snippet Tool)
コードスニペット実行ツールは、Copilotのチャットビューにおいて、コードスニペットの実行を可能にするツールです。編集中のコードを改変したくはないが、ちょっとした動作を試したいという場合に有用です。
利用するには、ツールとして「#pylanceRunCodeSnippet」を付加してプロンプトを投げます。
例えば以下は、既存のcalc.pyにもう1個呼び出しコードを付けてチャットビュー内で実行させた流れです。「pylanceRunCodeSnippet を実行しました - pylance mcp server(MCP サーバー)」の左にある「>」をクリックすると、入力と出力が展開されて表示されます。入力としてコードスニペット実行のためのMCPサーバに対するデータ、出力として実行コードとその結果が表示されます(図7)。
 
このとき実行されるPythonは、ワークグループで選択されているものです。このPythonが、PylanceのMCPサーバ(第14回で紹介)によって実行され、結果が返されるという仕組みです。ここではアタッチされたファイルについてコードスニペットの実行を試しましたが、メッセージを表示するだけといった単純なコードについても、もちろん実行させることが可能です。
仮想環境の管理
拡張機能自体がプレビューリリースではありますが、Pythonの仮想環境を管理することができます。
仮想環境とは、Pythonパッケージなどを使い分けるための仕組みです。グローバルにインストールされたパッケージの変更はシステム全体に影響するので、プロジェクトによってはバージョンのミスマッチなどで正しく動作しないなどのトラブルの元にもなります。仮想環境によってプロジェクトごとにパッケージを用意すればトラブルの発生を抑制できるので、仮想環境の利用が推奨されています。
本稿も、ここで作成した仮想環境を前提に以降の解説を続けます。以下の手順で操作します(図8)。
- コマンドパレットを開き、「python create」と入力すると候補が表示されるので、「Python: 環境の作成...」を選択します。
- 使用するツールを聞かれるので、「Venv」を選択します。もう一方の選択肢として示されているCondaは高機能な仮想環境ですが、別途インストールが必要なためここでは組み込みのVenvを使用します。
- 仮想環境で使うPythonインタプリタを選択します。pyenvによってインストールされたPythonなど一覧にない場合には「インタープリター パスを入力...」を選択して、Pythonインタプリタのパスを入力します。pyenvの場合、「/Users/user/.pyenv/shims/python」などと入力すれば(userはログインしているユーザ名、チルダ~は使えません)現在選択されているPythonとなります。
- 「次の環境が使用されています。」と表示され、ステータスバーのPythonバージョンの表示に「3.13.7 (.venv)」などと表示されれば、使用中のワークスペース(フォルダ)にて仮想環境が有効になっています。以降、ワークスペース(フォルダ)を開けば自動的に仮想環境が適用されます。
 

 
              
               
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                              
                               
                              
                               
                              
                               
                              
                               
                              
                               
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
															
														 
															
														.png) 
     
     
     
     
     
													 
													 
													 
													 
													 
										
									
 
                     
                    