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文件夹都作为源文件夹添加到项目的项目结构设置中