PyCharm无法在__init__.py中找到任何OpenCV函数的引用。

9

我正在使用2021.2专业版的PyCharm,在其中安装了opencv-python:

pip install opencv-python

然而,当我尝试使用cv2包时,IDE会给出以下警告:

Cannot find reference 'resize' in '__init__.py'

这里我给出了resize函数的例子,但是对于cv2包中的每个函数都是如此。虽然代码运行没有错误,但是我无法使用自动完成功能,这有点烦人。我在这里找到了一个答案(链接),可能会有所帮助。那个人说要使用:

import cv2.cv2 as cv2

然而对我来说这并不起作用。我收到了以下错误信息:
ERROR: No matching distribution found for cv2

这是因为opencv中没有名为cv2的包。有人知道如何解决这个问题吗?这是PyCharm的问题吗?
更新: 这是命令"pip show opencv-python"的输出:
Name: opencv-python  
Version: 4.5.3.56  
Summary: Wrapper package for OpenCV python bindings.  
Home-page: https://github.com/skvark/opencv-python  
Author: None  
Author-email: None  
License: MIT  
Location: z:\appdata\python\lib\site-packages  
Requires: numpy  
Required-by:  

这个回答解决了你的问题吗?PyCharm无法识别已安装的模块 - ti7
不幸的是,这并不能解决我的问题。在我的情况下,Python 识别到模块已安装并且可以运行代码而没有错误,但我无法获得自动完成功能,因为它找不到 init.py 中的引用。 - Daniel Aben-Athar Bemerguy
您的安装没有任何问题。如果该函数是用C或C++实现的,则PyCharm将无法解析它。PyCharm执行的是静态分析。如果有必要执行代码才能存在该函数,那么PyCharm就看不到它。PyCharm关于此警告的文档明确说明了这一点。只需忽略警告或将其静音即可。 - BoarGules
3个回答

21

这个解决方案对我有效。

  • 在首选项中选择Python解释器
  • 点击设置图标(位于显示Python解释器的框右侧的齿轮)并选择“显示全部”
  • 显示所有配置的解释器列表,当前的解释器已经被突出显示。
  • 保持解释器仍然是突出显示状态,在顶部点击显示文件夹和子文件夹的图标,工具提示应说“显示所选解释器的路径”。
  • 点击+按钮并添加以下路径:/lib/python3.9/site-packages/cv2 如果您正在使用不同的Python版本,则.../python3.9...将不同。
  • 点击“确定”,直到回到主IDE窗口

在Mac OS 12.4,PyCharm 2022.1上测试通过。


使用 Windows 11 和 PyCharm 2022.3.2 进行开发工作。虽然没有真正的问题,但提示信息有些烦人。 - 9 Guy
太棒了。谢谢!在Mac上也可以运行。 - Alexis
在Ubuntu Linux操作系统中,我使用OpenCV 4.7在PyCharm 2023中工作正常。路径为/home/*USERNAME*/.local/lib/python3.10/site-packages/cv2 - PyHP3D

2

你能分享一下运行命令 pip show opencv-python 的结果吗?如果输出类似于以下内容:

Name: opencv-python
Version: 4.5.1.48
Summary: Wrapper package for OpenCV python bindings.
Home-page: https://github.com/skvark/opencv-python
Author: None
Author-email: None
License: MIT
Location: c:\users\{username}\appdata\local\programs\python\python37\lib\sitepackages
Requires: numpy
Required-by:

如果出现了问题,那么可能是opencv的__init__.py文件有问题。

请问您能分享一下输出结果吗?

谢谢。

通过您的输出,可以清楚地看到pip已经成功在您的机器上安装了cv2。

现在,您能否分享一下以下命令的输出:

python -c "import cv2"

这是为了检查是否存在与Python或PyCharm有关的问题。


2
如果使用opencv-python > 4.5.5.62的版本,则pip包中存在一个错误(请参见:https://github.com/opencv/opencv-python/issues/821)。
这会导致自动完成丢失并在PyCharm中出现Cannot find reference 'im...' in '__init__.py'警告。
目前的解决方法是明确安装旧版本的opencv,以使自动完成正常工作并避免警告。 pip install --force-reinstall --no-cache -U opencv-python==4.5.5.62

以下是对我在Ubuntu 20.04上使用Python3.8的PyCharm 2023版本的变体。以上解决方案不起作用,因为我的/home/USERNAME/.local/lib/python3.10/site-packages/目录是空的。我正在使用虚拟环境解释器,所以我只需使用PyCharm的设置...Python解释器窗口安装opencv-python 4.5.5.62覆盖原有内容。生成的文档格式可能不太美观,但是它是存在的。 - Doc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接