この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
DA事業本部の横山です。
Visual Studio CodeでPythonの開発を行う際に、初心者がハマりやすいimportエラーの解消方法について書いていきます。
結論
先に結論を書いておくと、settings.json
にpython.analysis.extraPaths
に読み込みたいパスを追加することで解決できます。
確認環境
- Python 3.8.2
- VSCode 1.50.1
- VSCodeのPython拡張機能
現象確認
以下のようなディレクトリ構成でコードを書いているとします。
$ tree
.
├── main.py : importする側
├── same_dir.py : importされる側
└── sample
└── other_dir.py : importされる側
main.py
import same_dir
from sample import other_dir
same_dir.same_dir()
other_dir.other_dir()
same_dir.py
def same_dir():
print('same_dir')
other_dir.py
def other_dir():
print('other_dir')
この時、main.py
のimport文で以下のようなエラーになるはずです。
ちなみに実行してみてもエラーは発生しません。
$ python3 main.py
same_dir
other_dir
これは、Pythonの実行時の探索パスとVSCodeが探索するパスが異なるためです。 問題なく実行できるとしてもこのままでは、コードジャンプはできませんし、AutoCompleteもできないため開発効率が落ちてしまいますよね?
VSCodeの設定を追加して、importエラーを解消しましょう。
VSCodeの設定を変更する
VSCodeのPython拡張機能には、探索対象のパスを追加するオプション(python.analysis.extraPaths
)が存在するため、settings.json
内で任意のパスを追加しましょう。
今回の例でいうと、以下のような設定を追加します。
settings.json
"python.analysis.extraPaths": [
"/home/yokoyama/target/path",
],
正しいパスが設定できたら、先ほどのimportエラーが解消されているはずです。 これで、コードジャンプやAutoCompleteが効くようになります。
プロジェクトで自作しているモジュールが全く違うディレクトリに存在する場合でも、この設定を行うことでコードジャンプやAutoCompleteが行えるようになるので困っている方は試してみてください。
最後に
今回は、VSCodeで自作モジュールのimportエラーを解消する方法を紹介しました。
VSCodeを使い始めた初心者の方はIDE固有の設定などでつまづいてしまうことがあるかもしれませんが、使いこなして快適な開発環境を手に入れましょう。
以上になります。この記事がどなたかの助けになれば幸いです。