python:並列な関係(兄弟関係)のフォルダ間でモジュールimportするとエラーが出る
dTree
Base
├
├─Dir1
| └─ a.py
├─Dir2
│ └─ b.py
上記の構造の構成で、a.pyからb.pyをimportで呼び出したい場合、普通にやるとエラーが出ます。ModuleNotFoundError: No module named 'utils'とか。
そこで、こういう記述をする、というのが一般的な解決策です。
''' a.py
import sys, os
sys.path.append(os.pardir)
from Dir2 import b
しかし、私の環境(vs code)では、これでもエラーが出ました。
色々な解決策があるようですが、実は、VS Codeの設定をいじるだけで直せます。
VSCodeの「ファイル」→「ユーザー設定」→「設定」からpython.terminal.executeInFileDirにチェック。
これだけです。コードはそのままで動きます。めっちゃ簡単!!
他の回避策としては、パスを色々といじる、というのがあるようなのですが、どうしても私のVS Code環境ではうまくいかず、、でした。しかし、この方法なら超簡単に解決できました。
あと、コードの自動整形を入れてると、インポートの順番が勝手に変わってしまって動きません。仕方ないので、自動整形の機能をオフにして使ってます。
この記事が気に入ったらサポートをしてみませんか?