BioErrorLog Tech Blog

試行錯誤の記録

venvでVSCodeのF12(Go to Definition)が機能しない問題の対処法 | Python

Pythonのvenv利用時に、VSCodeのF12(Go to Definition)が機能しない問題への対処法を整理します。

はじめに

VSCodeのF12(Go to Definition)、便利ですよね。

しかし、Pythonでvenvを利用するとこのGo to Definitionがうまく機能しないことがあります。

venvを使うと、F12 (Go to Definision)がうまく機能しない

今回はこの対処法をメモします。

venvでVSCodeのF12(Go to Definition)が機能しない問題の対処法

原因

おそらく原因は、VSCodeで選択されているPythonインタプリタが該当のvenv内のものではないため、でしょう。

VSCodeで選択されているPythonインタプリタは、VSCode右下から確認することができます。

VSCode右下に表示されているPythonバージョンをクリックすると、今どこのPythonインタプリタが参照されているかが確認できる

ここで選択されていたPythonインタプリタが作成したvenv内のものではなく、例えばグローバルにインストールされたものが指定されていた場合、venv内で仮想環境にインストールしたライブラリにはF12ジャンプができません。

対処法

venv内のPythonインタプリタを、VSCodeのPythonインタプリタとして指定します。

やり方は、先ほどと同様にVSCode右下からPythonインタプリタを選択し、そこで利用したいvenv内のPythonインタプリタpathを追加するだけです。

1. VSCode右下に表示されているPythonバージョンをクリック

2. "Enter interpreter path..." をクリック

3. venv内のPythonインタプリタpathを入力

venv内のPythonインタプリタpathは、絶対パスでも相対パス(VSCodeを開いているrootからの相対パス)からでもどちらでも大丈夫です。

venv内のPythonインタプリタは、<仮想環境名>/bin/pythonに配置されています。
※ Windowsであれば<仮想環境名>/Scripts/pythonです

# 例
.venv/bin/python

# Windowsの場合
.venv/Scripts/python

おわりに

以上、Pythonのvenv利用時にVSCodeのF12が機能しない問題への対処をまとめました。

コードを書いてる時にライブラリのソースコードをパッと読めるのは、便利ですし何より楽しいですね。

どなたかの参考になれば幸いです。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

www.bioerrorlog.work