这个应用程序无法启动,因为无法初始化任何Qt平台插件。

43

我遇到了一个问题,尝试运行一个非常简单的Python脚本,但是出现了这个错误:

qt.qpa.plugin: Could not find the Qt platform plugin "cocoa" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

zsh: abort      python3 mypuppy1.py

脚本代码如下:

import cv2
img = cv2.imread('00-puppy.jpg')
while True:
    cv2.imshow('Puppy',img)
    if cv2.waitKey(1) & 0xFF == 27:
        break
cv2.destroyAllWindows()

然而,这个Notebook代码在JupyterLab中可以运行:

import cv2
img = cv2.imread('00-puppy.jpg')
cv2.imshow('Puppy', img)
cv2.waitKey()

我使用的是macOS,Anaconda和JupyterLab。希望能够得到解决这个问题的帮助。谢谢!


1
我遇到了同样的问题。如果你运行 brew info qt,你可以看到它安装在哪里以及版本号。我认为问题是 Python 没有在正确的位置查找它,因此必须设置一个环境变量。 - superhero
我不得不通过https://www.qt.io/download-qt-installer重新安装QT到我的“Users/”路径中的一个目录,现在它可以正常工作了。 - superhero
2
安装 opencv-python-headless 而不是 opencv-python 解决了我在 Mac 上遇到的相同问题(我只需执行 pip install opencv-python-headless)。我认为值得一试。 - hideya
我通过这个链接 https://dev59.com/1FgQ5IYBdhLWcg3w7obY#55617809 解决了我的同样的问题。 - dechiffre
12个回答

35

请尝试安装

pip3 install opencv-python==4.1.2.30  

3
此版本的OpenCV已不再提供。 - datacoder

31

针对Ubuntu用户,

sudo apt-get install qt5-default 可以解决该问题。

(我正在使用OpenCV 4.4版本)


6
“qt5-default”软件包不可用,但是另一个软件包引用了它。” - Huy Phạm
这对我来说并没有解决问题。 - Ohumeronen
在使用Ubuntu 22.04时,我遇到了networkx和matplotlib的问题。 - Luan Pham

19
对我而言,使用早于刚发布的4.2版本的opencv-python版本可以解决这个问题。新版本(4.2.0.32)于2020年2月2日发布,似乎引起了这个破坏性变化,并且可能期望在特定位置( Users/ 目录)找到Qt,正如其他答案所指出的那样。
你可以尝试手动从qt.io安装并确保在你的 Users 目录下获得一个.qt目录,或者你可以使用4.1.2.30版本,不需要做任何其他操作就能完美工作。
它对opencv-contrib-python也有效。

10
这可以通过安装python-opencv-headless而非python-opencv来解决。

4
这是“opencv-python-headless”。 - Rubén Salas
3
它无法工作并且给了我这个错误:cv2.error: OpenCV(4.5.2) /tmp/pip-req-build-5wrl9sz4/opencv/modules/highgui/src/window.cpp:679: error: (-2:未指定错误) 函数未实现。请使用支持Windows、GTK+ 2.x 或Cocoa的库重新构建该库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg-config,然后重新运行cmake或配置脚本,位于'cvShowImage'函数中。 - Franva
1
@FranvaI 我也遇到了完全相同的错误。你解决了吗? - akshay acharya

4

我也遇到了同样的问题。虽然没有答案,但在类似的设置中出现了这个问题。我试过很多解决方案:

  • 通过brew安装QT
  • 重新从qt.io/download-qt-installer下载并安装
  • 使用pip(使用虚拟环境)安装
  • 显式地更改环境变量
    • QT_PLUGIN_PATH="/Users/halopend/.qt/5.14.1/clang_64/plugins/"
    • QT_QPA_PLATFORM_PLUGIN_PATH="/Users/halopend/.qt/5.14.1/clang_64/plugins/platforms/"

有时候,问题似乎是opencv内置了qt,并与外部定义的qt发生冲突,但我不确定。

无论如何,我不确定这是否对你有帮助,但至少您有一些可以查找的想法。


1
使用 pip install --upgrade pyqt5_tools 解决了我的问题。 - LSeu
使用pip install --upgrade pyqt5_tools解决了我的问题对我有用。非常感谢! - undefined

3
在我的情况下, 这个链接提供的解决方案有效。
 export QT_QPA_PLATFORM=offscreen 

它停止了抱怨,但是没有任何窗口出现... 等一下:执行回退导出 QT_QPA_PLATFORM= 开始工作了 - jaromrax

1
我遇到了同样的问题。我同意Simran Singh的观点,这个问题来自最近的更新。
在Github上pacjin79的引用:“如果你使用的是Mac,请确保安装opencv-python-headless而不是opencv-python以避免这些错误。”link 我个人通过这种方式解决了这个问题。希望这对你有用。

1

在使用PyQt5时遇到了相同的问题,通过使用PyQt6==6.3.1opencv-python==4.6.0.66解决了该问题。


1

在经历了许多尝试和错误后,对于我来说,卸载和安装numpyopencv的方法是有效的。


1

我遇到了同样的问题。结果发现在我的情况下,Python 3.9 导致了这个冲突。我通过创建一个新的环境并使用 Python 3.8 来解决了这个问题。

命令:

conda create -n myenv python=3.8.0
conda activate myenv
pip3 install opencv-python==4.2.0.34

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