问题
在mac 上使用OpenCV-Python时,程序出错,提示信息如下:
You might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
qt.qpa.plugin: Could not load the Qt platform plugin "cocoa" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
这还是使用Anaconda的python环境。
问题是说,在系统里找到了2个Qt的执行二进制环境,系统也不知道用哪一个。
解决
没想到网上也有很多人碰到这个问题。一个办法是让系统知道加载哪一个Qt环境,一种办法是让系统里只有一个Qt环境可用。
那就简单地去掉一个,让OpenCV-Python不带Qt就好。
$ pip uninstall opencv-python
Uninstalling opencv-python-4.2.0.32:
Would remove:
/Users/david/anaconda2/lib/python2.7/site-packages/cv2/*
/Users/david/anaconda2/lib/python2.7/site-packages/opencv_python-4.2.0.32.dist-info/*
Proceed (y/n)? y
Successfully uninstalled opencv-python-4.2.0.32
然后在重新安装 opencv-contrib-python-headless,这里是contrib,可以将依赖的opencv_python一起安装好。
$ pip install opencv-contrib-python-headless
再执行开始的出错的程序,一切OK 了。