Pycharm 使用从同级子包导入时未解析的引用

Pycharm 使用从同级子包导入时未解析的引用,pycharm,Pycharm,我有以下类似的目录结构 main.py pack |___sub_pack1 |__a.py |___sub_pack2 |__b.py 现在在main.py(我执行的主程序)中,我像下面一样导入 from pack.sub_pack1 import a from pack.sub_pack2 import b 工作很好 在a.py中,我像下面一样导入 from pack.sub_pack1 import a f

我有以下类似的目录结构

main.py
pack
   |___sub_pack1
                |__a.py
   |___sub_pack2
                |__b.py
现在在main.py(我执行的主程序)中,我像下面一样导入

from pack.sub_pack1 import a
from pack.sub_pack2 import b
工作很好

在a.py中,我像下面一样导入

from pack.sub_pack1 import a
from pack.sub_pack2 import b
此时,pycharm将上述代码下划线为红色,并通知我“未解决的参考包”


现在我的代码运行良好,应该可以了。我很好奇为什么我认为这是一个错误,我能做些什么来避免这样的事情

进入设置->项目结构和sub_pack2作为源文件

如果PyCharm中出现“未解决的引用”错误,您可以做的另一件事是:

  • 右键单击Python源代码目录
  • 选择“将目录标记为”>“源根目录”

确保您已经对所有Python源目录执行了此操作。

出于某种原因,PyCharm似乎希望您在包中有一个
\uuu init\uuuuuuuuuuuuupy.py
,以便非本地导入工作。这在技术上对于Python包是强制性的,但实际上没有经过解释器的验证,而且显然在内部执行不一致,但是PyCharm会查找解决导入的位置。这意味着您应该将此作为错误提交给JetBrains,我有很好的经验让他们快速解决这样的烦恼。我当然添加了init.py。我得到了pycharm论坛的帮助。如果我能得到任何答案,我将进行更新。同样的问题:同级子包(当然带有
\uuuu init\uuuu.py
)与PyCharm项目共享同一名称空间,PyCharm检查无法识别,尽管代码工作正常。下面提出的两种解决方案对我不起作用,因为同级子包不是源代码的一部分,而是位于
Python27\Lib\site packages
文件夹中。感谢您提到“源根目录”。它修复了我使用PyCharm时遇到的问题。记住在那之后要
文件-使缓存无效/重新启动
。这对我很有效!只需确保所有子包的所有src文件夹都作为源文件夹添加到项目的项目结构设置中