【发布时间】:2023-03-03 01:27:01
【问题描述】:
我已经阅读了关于 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方面,因此据我所知这个话题是新的。
- How does PyCharm handle relative imports of modules? - 是未将根项目目录添加到 PYTHONPATH 的用户
- Pycharm auto relative imports - 谈论自动导入功能,但这里不是这样
- Subpackages and relative imports in PyCharm - 正在讨论 python 2.7 中的导入问题,但在这里我没有任何要导入的问题
- Relative imports for the billionth time - 对导入问题进行了很好的审查,并提供了非常详细的答案 - 这对我来说没有任何帮助,因为我没有任何导入问题。更不用说它是 python 2.7 主题而不是 3.x
【问题讨论】:
标签: pycharm