【Python】Import問題
すごくわかりづらいので自分なりにまとめ。まだ合っている自信がない。
- 明示的相対Import
from . import lib
.(ドット)はimportを実行しようとしているモジュールが属している同一パッケージを示す。
- 絶対Import
sys.pathやPYTHONPATHに登録されているパスからモジュールを捜索する。
sys.pathにはルートのスクリプト/モジュールのパスやカレントディレクトリが含まれ、ルートのスクリプト/モジュールからimportされたスクリプト/モジュールのパスは含まれない
- sys.path
sys.pathの中身はrootのスクリプト/モジュールとそこからimportした先のスクリプト/モジュールとで共通。
e.g.) rootのスクリプトでsys.pathに追加した内容はimportされたスクリプトからでも確認できる。(変数のスコープの様にスクリプト/モジュールごとのpathだと思ってた)