Pythonでプログラムを書いていますが、自作モジュールのimport方法について、この書き方がベストなのかよく分からずにいます。
PRJ | |--bin | |--main.py | |--lib |--lib1.py |--lib2.py
上記のようなフォルダ構成で、main.pyを実行します
main.pyで、lib1, lib2のモジュールをインポートしており、以下のような書き方です。
Python
1app_home = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")) 2sys.path.append(os.path.join(app_home)) 3from lib import lib1 4from lib import lib2
PRJ配下をベースディレクトリとして指定する方法です。
この方法で問題なく動作しますが、vs code上で以下の問題があります。
- ソースコードにPylanceがエラー表示する
Import "lib" could not be resolvedPylance (reportMissingImports)
- ドキュメントのフォーマットを行うと、import文がファイル最上部に移動させられてしまう。sys.path.appendの前にimportすることになり、そのまま実行するとエラーになる
=> ファイル全体に対してドキュメントのフォーマットができない - vs.codeがモジュールパスを認識できていないのか、カーソル当てたときの説明が表示されない
質問事項
階層構造を定義したpythonプロジェクトにおいて、各階層のモジュールをimportする際のベストプラクティスはどのようにすべきでしょうか。
現在の書き方はプログラム内でライブラリパスを設定しており、正直あまりスマートには見えません。
こう書いたほうがいい。今の書き方がベストだ。などのご意見お願いします。
回答2件
あなたの回答
tips
プレビュー