我正在开发一个 Python 应用程序,该应用程序由一个核心和多个使用该核心的独立模块组成。我在设置包的相对导入时遇到困难。
app
|- __init__.py
|- core
|- __init__.py
|- corefile.py
|- module1
|- __init__.py
|- main.py
__init__.py
文件是空的。我正在运行 Python 2.7.1。
main.py
from .core import *
运行 python main.py
导致 ValueError: Attempted relative import in non-package
。
类似问题:Ultimate answer to relative python imports , How to do relative imports in Python? , Relative imports in Python
感谢您的帮助。
最佳答案
简而言之,您只能使用本身已导入的包的相对导入。
例如,如果您有:
$ cat run.py
from app.module1 import main
main.main()
$ python run.py
然后你可以在 app/module1/main.py
中使用相对导入(尽管它需要是 from ..core import foo
,因为 core/
比 main.py
高一级。
关于Python 包 : relative imports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10059002/