Python sysmodule、パスをクリーンアップ
Import Searchシーケンス
1.sys.module
2.built-in modules
3.sys.path
sys.modules
ディクショナリ形式
使用済みまたは組み込まれたモジュールまたはパッケージが1つ以上しか存在しないため、新しいimportはありません.
built-in modules
Pythonが公式に提供しているライブラリ.
sys.path
pipで再インストールしたパッケージもここで見つけることができ、新しく作成したパッケージやモジュールを使用する場合はpathを登録して検索に設定します.この変数はlistの形式で構成されます.
上記3つの領域でモジュールまたはパケットが見つからない場合は、ModuleNotFounderErrorを出力します.
'sys':
sysモジュールはすでに内蔵されているので、内蔵モジュールがある部分に見つかります.
Absolute Path & Relative Path
宣言パスには「Absolute Path」と「Relative Path」があります.
Absolute Path
どこで使っても同じで、使うときに紛らわないメリットがあります.
Relative Path
my_app
├── main.py
├── pkg1
│ ├── __init__.py
│ ├── module1.py
│ └── module2.py
└──── pkg2
├── __init__.py
├── module3.py
├── module4.py
├── module5.py
└── pkg4
├── __init__.py
└── module6.py
#Absolute Path 예시
from pkg1.module1 import func2
from pkg2.module3 import func3
from pkg2.pkg4.module6 import func1
#Relative Path 예시 (현재 위치 : pkg2 module5.py)
from .module3 import func1
from ..pkg1.module1 import func1
from .pk4.module6 import func2
を選択します.は、親ディレクトリです.Relative path
利点:Absolute Pathより簡単
欠点:プロジェクトが大きいほど混同されやすくなります.ファイルの場所が変更された場合は変更が必要です.
結論:Absolute Pathの使用を推奨
Reference
この問題について(Python sysmodule、パスをクリーンアップ), 我々は、より多くの情報をここで見つけました https://velog.io/@donq/Pythonsys-module-path-정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol