2 回答

TA貢獻1880條經驗 獲得超4個贊
僅當子模塊從父模塊中加載時,相對導入路徑才有效:
from Root.test.test import some_function
如果您想將來自兩個不同子模塊的組件一起使用并作為獨立腳本使用,我建議使用非相對導入路徑:
from Root.outlook.outlook import Outlook
您需要將模塊 Root 放在 PYTHON_PATH 環境變量中包含的文件夾中
也不要忘記將init .py添加到所有文件夾
some_directory/
Root/
__init__.py
outlook/
__init__.py
outlook.py
test/
__init__.py
test.py
EDIT1:
根據您想從 test.py 內部導入的方式,您可能會面臨 2 種不同的情況
from Root.outlook.outlook import Outlook
將要求 python 可以訪問“Root”目錄
PYTHON_PATH="...:...:/path_to_some_directory_that_contains_Root"
盡管
from outlook.outlook import Outlook
將需要
PYTHON_PATH="...:...:/path_to_Root"
... 表示環境變量中已經存在的其他路徑,您應該保持原樣。
'添加到 PYTHON_PATH 代表手動方式快速達到您想要的結果。實際上,在使用模塊時應該做的是安裝它,通過在 Root 目錄和命令中使用帶有 disutils 的“setup.py”腳本
python setup.py install
添加回答
舉報