小编Alo*_*lon的帖子

pycharm 2018中的相对导入无法像python 3.6中的相对导入一样工作

我已经阅读了无数有关python相对导入的讨论,我认为它如此混乱的原因之一是它将一个Python版本更改为另一个版本(我的版本是3.6)。但是这里的罪魁祸首似乎是PyCharm(除非我误会了..),我想知道是否有人遇到过此问题的解决方案。对于具有这种布局的项目:

/project
    |-- __init__.py
    |---subfolder
            |-- __init__.py
            |-- AA.py
            |-- BB.py
Run Code Online (Sandbox Code Playgroud)

让我们想象一下,如果我编写此导入myfunc 文件,AA.py 在文件中包含一些功能BB.py

from AA import myfunc
Run Code Online (Sandbox Code Playgroud)

那么Python的作品完美,但PyCharm认为这是一个错误: 在此处输入图片说明

因此,为了使PyCharm满意,我可以将y添加.到导入中,然后看似已解决了该错误:

from .AA import myfunc
Run Code Online (Sandbox Code Playgroud)

但后来python不高兴,给了我错误: ModuleNotFoundError: No module named '__main__.AA'; '__main__' is not a package

因此,总而言之,我使用的是实际有效的导入(即from AA import myfunc),但是如果我可以使PyCharm对此表示同意,那将是非常不错的,因为这样它就提供了诸如自动完成,定义等功能。

不是重复的: 我知道似乎这个主题已经被反复讨论了,但是它也有很多方面。在这里我谈论的是pycharm方面,因此据我所知这个主题是新的。

  1. PyCharm如何处理模块的相对导入?-是未将根项目目录添加到PYTHONPATH的用户
  2. Pycharm自动相对导入 -在谈论自动导入功能,这里不是这种情况
  3. PyCharm中的子包和相对导入 -在谈论python 2.7中的导入问题,但是在这里我没有任何导入问题
  4. 相对进口量为10亿次 -很好地回顾了进口问题,并提供了非常详细的答案-对于我而言,这没有帮助,因为我没有任何进口问题。更不用说这是python 2.7主题,而不是3.x

pycharm

12
推荐指数
1
解决办法
2685
查看次数

标签 统计

pycharm ×1