我有一个目录结构
├── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
我可以使用sys.path.insert()访问网络模块。
import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *
但是,pycharm抱怨它无法访问该模块。我如何教pycham解决引用?
我有一个目录结构
├── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
我可以使用sys.path.insert()访问网络模块。
import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *
但是,pycharm抱怨它无法访问该模块。我如何教pycham解决引用?
当前回答
在新版本的pycharm中,只需右键单击想要导入文件的目录或python包,然后单击“标记目录为”->“源根”
其他回答
在我的例子中,使用Pycharm 2019.3,问题是我忘记向我想导入的文件添加扩展名“.py”。一旦添加,错误就会消失,而不需要使缓存无效或任何其他步骤。
为什么会发生这种情况有几个原因。以下是修复大多数此类情况的几个步骤:
.idea缓存问题
一些.idea问题导致IDE显示错误,而代码仍然正确运行。解决方案:
关闭项目并快速PyCharm 删除项目所在的。idea文件夹。请注意,它是一个隐藏文件夹,您可能不知道它存在于项目目录中。 启动PyCharm并重新创建项目
导入相对于项目文件夹
相对导入,而代码根文件夹与项目文件夹不相同。解决方案:
在项目资源管理器中找到相关导入所需的文件夹 右键单击并标记为“Source Root”
编辑器没有将init.py标记为Python而是文本
这是所有案例中最令人难以置信的。在这里,出于某种原因,PyCharm认为所有__init__.py文件都不是python文件,因此在代码分析时忽略了它们。要解决这个问题:
打开PyCharm设置 导航到编辑器->文件类型 找到Python并将__init__.py添加到Python文件列表中
or
找到Text并从文本文件列表中删除__init__.py
很多时候发生的事情是插件没有安装。如。
如果你正在开发一个django项目,并且pyCharm中没有安装django插件,它会显示错误“unresolved reference”。 参考: https://www.jetbrains.com/pycharm/help/resolving-references.html
我也有同样的问题,也尝试了很多建议,但没有一个有效,直到我发现了这篇文章(https://stackoverflow.com/a/62632870/16863617)。尽管他的解决方案对我不起作用,但它帮助我想出了将_init.py_添加到——>设置|编辑器|文件类型| Python |注册模式的想法
截图
未解决的引用错误现在已经解决。
通过PyCharm安装(适用于社区版)。打开设置>项目>项目解释器,然后点击下面截图中的绿色+图标。在打开的第二个对话框中,输入软件包名称并单击“Install package”按钮。