概要
- VSCodeでPythonのソースコードを書いている際、自作のパッケージを使うことはよくある。
- しかし、自作パッケージ(あるいは自作モジュール、自作ライブラリ)のimportはVSCodeにおいては適切な設定をしなければ警告対象となる。
- 警告がでたままにしておくと、バグの作りこみの確率が上がる可能性があるため、消したい。
- そのため、".vscode/settings.json"の"python.analysis.extraPaths"に絶対パスで指定する。
前提
- OS: Windows 11 Pro(バージョン:21H2/OSビルド22000.856)
- VSCode: 1.70.1 (user setup)
- Python: 3.10.3
背景
- Pythonでコーディングする際、別のアプリでも再利用したい機能はいくつもある。
- それらの機能を実現するためのソースコードはパッケージとして切り出し、再利用したい。
- Pythonではソースコードの再利用するためには、別ファイルでパッケージとしてコーディングし、importする。
- なお、カレントディレクトリにパッケージを収めたファイルがあってもVSCodeはそれを認識できない。
- パッケージを見つけられないVSCodeはimport可能なパッケージがないと警告をあげる。
- この警告を消したい。
現象
発生した状況
- 以下がディレクトリ構造とファイル内容
root/
├ common/
│ └ mypackage.py
└ main.py
- 実行するPythonスクリプト
main.py
import common.mypackage as mypkg
mypkg.MYHEY().hey()
- パッケージを記載するファイル
mypackage.py
class MYHEY:
msg=None
def __init__(self,msg='Hey!'):
self.msg = msg
def __del__(self):
pass
def hey(self):
print(self.msg)
解決方法
- ".vscode/settings.json"の"python.analysis.extraPaths"に絶対パスで指定する。
- 今回は、WSL2上のファイルをWin側でVSCodeを用いて編集している場合を考える
settings.json
{
"python.analysis.extraPaths": [
"\\\\wsl.localhost\\<OS名>\\<実行するカレントディレクトリ>"
]
}
おわりに
- 警告自体は出ていても実行は可能だが、より致命的な問題を見落とす原因になると考えている。
- 何よりもすっきりとしている方が気持ち良いのではないだろうか。
- Enjoy VSCode!