我正在用python启动一个项目,代码结构如下:
project/
__init__.py
a.py
b.py
mainA.py
utilities/
__init__.py
mainB.py
c.py
__init__
文件都是空白的。在
我想把utilities/mainB.py
作为一个程序运行(使用python main.py
),mainB需要导入a.py
和{from .. import a
和其他一些方法,但是{
ValueError: Attempted relative import in non-package
所以问题来了:
mainB.py
以便它可以作为主程序运行?在mainA.py
现在可以作为主程序运行了,它还导入了a.py
和{import a
和{mainA.py
必须从project/some/directory
导入一个模块,我该怎么做?在
您应该在PYTHON_PATH中添加“project”dir,然后在主营业务伙伴公司名称:
见this previous question。你有两个选择。一种方法是使用PEP 366中描述的
__package__
属性来设置模块的相对名称。另一种方法是将脚本作为模块执行(对解释器使用-m
标志),而不是直接作为脚本运行它们。在{1>你可以使用内置的Python模块。在
这允许您将mainB作为包的一部分正常编写,因此相对导入和绝对导入都可以正常工作。在
有关此功能的深入讨论,请参见PEP-338。在
相关问题 更多 >
编程相关推荐