29

当使用已编译的扩展(例如 OpenCV Python 绑定)编写 Python 代码时,PyCharm 似乎并没有意识到它们的可用性。导入用灰色下划线标记,将“未解析的引用”作为工具提示,并且自动完成功能也不起作用。(代码中已经使用的函数名除外。)

这不是由错误的模块路径引起的,代码在启动时运行没有错误。此外,在我将模块导入 Python shell 后,自动完成功能开始按预期工作。

是否有解决方案,或者这是编译扩展的架构限制?有没有其他 IDE 可以解决这个问题?

4

10 回答 10

19

导入用灰色下划线标记,表示“未解析的引用”作为工具提示

这很可能意味着 PyCharm 看不到您导入的模块。在编辑模式下,PyCharm 依赖于导入模块的 Python 源的可用性。如果一个模块不是用 Python 编写的,而是一个 C 扩展模块,PyCharm 会生成一个包含函数原型的“骨架”,并使用它来完成。

在 shell 模式下,PyCharm 使用实时导入的对象来完成,结果略有不同。

确保您为项目选择的 Python 解释器(文件/设置/Python 解释器)可以看到您的 OpenCV 安装。如果解释器是正确的,请尝试删除并重新添加它(这有点耗时,抱歉)。

如果没有任何帮助,请提交错误

于 2011-03-04T16:01:18.057 回答
9

我注意到根据导入方式的不同,pycharm 的行为有所不同。使用:

import cv2

自动完成不起作用,

同时:

from cv2 import cv2

自动完成作品

于 2019-05-03T14:26:01.337 回答
6

我不得不将二进制文件硬链接到我的解释器的 lib-dynload 文件夹中。

$ cd /usr/lib/python3.7/lib-dynload
$ sudo ln /usr/local/lib/python3.7/dist-packages/cv2/python-3.7/cv2.cpython-37m-x86_64-linux-gnu.so cv2.cpython-37m-x86_64-linux-gnu.so

路径可能因您的环境而异。我没有在 OSX 或 Windows 上测试它,但它也可以在那里工作。lib-dynload 文件夹在这里: 项目结构

于 2020-02-15T12:06:45.877 回答
3

PyCharm 目前不扫描已编译的扩展/二进制文件,这些扩展/二进制文件位于手动添加到 IDE 解释器的路径中。我在YouTrack中向 Jetbrains 提交了一个错误。你可能想看看它,可能还有我在他们的论坛中发起的讨论(链接在错误描述中)。如果您是面临同样问题的 PyCharm 用户,如果您能投票支持在 YouTrack 中解决此问题,我将不胜感激。

于 2011-03-17T13:30:50.837 回答
3

尝试单击文件 | 中的“重新加载”按钮 设置 | IDE 设置 | Python 解释器。这让它对我有用。

于 2012-03-12T16:47:07.847 回答
0

在我的 OS X 10.8 和 PyCharm 3 上,IDE 会自动选择不同的 Python 安装。我在 Eclipse Pydev 中注意到了这一点,它选择了正确的一个并按预期工作。不容易注意到两者之间的区别:/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python

于 2014-04-10T15:51:05.360 回答
0

我按照这个问题下的说明进行操作: How to install OpenCV on Windows and enable it for PyCharm without using the package manager

之后它不起作用,我重新安装了 pycharm ide,没有任何其他更改,现在它工作正常。我知道这不是最好的答案,但是在浪费了很多时间并尝试了不同的解决方法之后,这是解决我问题的方法,我希望它可以帮助你。

于 2017-03-24T01:34:58.440 回答
0

经过两天的测试,我终于解决了这个问题: 区别:

  1. 卸载 python 3.7.2,安装 python 3.7.7。
  2. 更改python安装的路径。(我强烈怀疑原因是我的PATHopencv-python有一些中文字符。它应该只有英文)。

然后做:

  1. 安装opencv-contrib-python.
于 2020-05-08T15:55:49.687 回答
0

就我而言,将 opencv 包含在路径install-opencv-4-on-windows中。并将其添加到项目设置中,如果这些都不适合您,我建议您安装 anaconda 更改 python 解释器并使用 anaconda 解释器。

为此,请转到:file -> settings -> project:test -> python interpreter并选择 conda 解释器

如果你没有 anaconda,你可以在https://www.anaconda.com/下载

按照链接python-opencv中的步骤在 anaconda 中安装 opencv

于 2020-12-27T00:48:04.353 回答
-1

我讨厌给出“为我工作”的答案,但也许我环境的详细信息将帮助您最终确定问题。

我以前从未使用过 PyCharm,但我只是在 Mac 10.6.6 上使用 PyCharm 1.1.1 和 Macports opencv +python26 进行了测试。自动完成第一次对我来说很好。我还关闭并重新运行了 PyCharm,无需进一步操作即可自动完成。对于我尝试过的其他本机扩展,例如 cjson、procname,我也没有自动完成的问题。

Pycharm 1.1.1 使用自动完成导入 opencv.

也许这是特定于平台的问题(Windows?),或者是影响旧版本 PyCharm 的错误?

于 2011-03-04T13:12:08.053 回答