为什么PyCharm对某些Numpy导入显示未解决引用错误?

29 投票
10 回答
40151 浏览
提问于 2025-04-18 06:43

在PyCharm中,下面这行代码因为每个导入都出现了未解决的引用错误而被标记了(这些错误用红色下划线表示)。

from numpy import tan, arcsin, arccos, arctan

不过,以下这些导入没有引发任何错误或警告:

from numpy import sin, cos, arctan2, sqrt, cross, pi

我在代码中使用这些导入时,运行得很好,没有任何错误或警告。通常我会依赖PyCharm的红色错误提示来判断我的代码是否有问题,但在这种情况下,PyCharm的提示是错误的。

为什么numpy中的一些函数能被PyCharm识别,而另一些却不能呢?

当前版本:

  • Windows 7 64位
  • Python 2.7.5
  • PyCharm 3.1.2
  • Numpy 1.8

谢谢!

10 个回答

2

在PyCharm的项目工具窗口中,右键点击你想要的文件夹,然后选择“标记文件夹为 -> 源代码根目录”。

7

以下内容通常有助于解决 错误的未解决引用 问题

File | Invalidate Caches
8

PyCharm的开发者发布了一个解决方案,针对可能导致检查失败的原因:

https://youtrack.jetbrains.com/issue/PY-32029

简单来说,如果你的项目目录里有一个叫venv的文件夹,检查可能会失败。你可以右键点击这个文件夹,把它标记为排除项。

11

在Python的设置中,配置主要有两个地方需要注意:一个是在 运行 | 编辑配置 | Python | Python解释器,另一个是在 文件 | 设置 | 项目 | 项目解释器。我之前的错误是没有在 文件 | 设置 ... 中设置正确的Python安装位置。因此,它引用了一个没有安装所需库(比如NumPy)的Python配置。

在我把这两个地方都指向同一个正确的Python安装后,我进行了 文件 | 清除缓存 / 重启,然后一切就正常了。

还有一个地方需要检查,就是 文件 | 默认设置... | 项目解释器,确保它和其他设置一致。

22

你看到这个问题的原因是因为PyCharm在进行静态分析。简单来说,Python会使用一些静态的框架(有些是提前生成的,有些是动态生成的)来帮助你分析代码。你可以在这里查看这些提前生成的框架 -> https://github.com/JetBrains/python-skeletons

你可以尝试通过开启以下设置来解决这个问题:

enter image description here

不过,如果这样还不行的话:

enter image description here

这个设置可以阻止错误的提示,它会以注释的形式显示在代码行上方。

撰写回答