我已经阅读了有关python中相对导入的无休止的讨论,我认为它如此令人困惑的原因之一是它将一个Python版本更改为另一个版本(我的版本是3.6)。但是这里的罪魁祸首似乎是PyCharm(除非我弄错了..),我想知道是否有人遇到过此问题的解决方案。 对于具有这种布局的项目:
/project
|-- __init__.py
|---subfolder
|-- __init__.py
|-- AA.py
|-- BB.py
让我们假设AA.py包含一些功能myfunc
如果我编写此导入文件,则在文件BB.py
中:
from AA import myfunc
然后python 完美正常工作,但是PyCharm认为这是一个错误:
因此,为了使PyCharm满意,我可以将.
添加到导入中,然后似乎可以解决该错误:
from .AA import myfunc
但是后来python不高兴,给了我错误:ModuleNotFoundError: No module named '__main__.AA'; '__main__' is not a package
因此,总而言之,我使用了实际有效的导入(即from AA import myfunc
),但是如果我可以以某种方式让PyCharm同意它,那就太好了,因为它随后提供了诸如自动完成,定义和等等。
不重复: 我知道似乎已经反复讨论了这个主题,但它也有很多方面。在这里,我谈论的是pycharm方面,因此据我所知这个主题是新的。