所以,我有以下文件夹结构;
Root/
--outlook/
----outlook.py
--test/
----test.pyoutlook.py包含一个名为Outlook的类。
我试图在Outlook文件中导入test.py类,如下所示-
from .outlook import Outlook
outlook = Outlook()我正在以- python test/test.py的形式从根文件夹运行脚本
这会导致错误-
Traceback (most recent call last):
File "test/test.py", line 1, in <module>
from .outlook.outlook import Outlook
ModuleNotFoundError: No module named '__main__.outlook'; '__main__' is not a package请帮帮忙。
发布于 2018-12-08 18:38:21
只有在从父模块中加载子模块时,相对导入路径才能工作:
from Root.test.test import some_function如果您想同时使用来自两个不同子模块的组件,并且作为独立脚本,我建议使用非相对导入路径:
from Root.outlook.outlook import Outlook您需要在PYTHON_PATH环境变量中包含的文件夹中包含模块根
还不要忘记将init.py添加到所有文件夹中。
some_directory/
Root/
__init__.py
outlook/
__init__.py
outlook.py
test/
__init__.py
test.pyEDIT1:
根据您想要从test.py内部导入的方式,您可以面对两种不同的场景
from Root.outlook.outlook import Outlook将要求python可以访问“根目录”。
PYTHON_PATH="...:...:/path_to_some_directory_that_contains_Root"而
from outlook.outlook import Outlook将需要
PYTHON_PATH="...:...:/path_to_Root"那个..。指示您应该保留的环境变量中已经存在的其他路径。
“向PYTHON_PATH添加”表示快速实现所需结果的手动方式。
python setup.py install发布于 2018-12-08 17:30:27
你进口错了。
from outlook.outlook import OutlookRoot/ --outlook/ ----outlook.py --test/ ----test.py
在您的情况下,您正在outlook文件夹中进行检查,因此您也必须指向该文件。
https://stackoverflow.com/questions/53684921
复制相似问题