Attempted relative import in non-package error in current structure
我正在获取此导入语句中的"尝试在非包中进行相对导入"。问题出在哪里?
1
| from ..Resources.UniversalHelper.Helper import UniversalPageHelper |
结构:
1 2 3 4 5 6 7 8 9 10
| project/
__init__.py
MainFiles/
__init__.py
Main.py (where this from statement is being called)
Resources/
__init__.py
UniversalHelper/
__init__.py
Helper.py |
- 你有__init__文件吗?
- 是,在当前目录中是根目录(..)和资源目录。但是所有的init文件都是空的。
- 在python中如何进行相对导入的可能副本?
- 我知道是重复的,但另一个问题没有给出明确的答案…
把__init__.py文件放在每个目录中并不重要。在我看来,导入Main.py是由import Main某处完成的,或者是通过运行scriptpython project/MainFiles/Main.py来完成的。
ValueError: Attempted relative import in non-package告诉您,Main不是作为包结构的一部分加载的。您需要将其作为完整的包导入,如import project.MainFiles.Main或作为模块python -m project.MainFiles.Main运行。
如果最后一个问题是你的问题,你也应该看看__main__.py。
- 是的,每当你在一个项目中运行一个主程序时,你应该使用python -m。