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
添加回答
举报