在osx上opencv安装没有合适的图像错误

时间:2018-05-08 08:57:57

标签: python macos opencv

我已按照本教程安装opencv:https://medium.com/@nuwanprabhath/installing-opencv-in-macos-high-sierra-for-python-3-89c79f0a246a

我有两种不同的虚拟环境设置。

在一个cv2上运行正常。 在另一个我得到:

ImportError: dlopen(/Users/me/.virtualenvs/py3cv/lib/python3.6/site-packages/cv2.so, 2): no suitable image found.  Did find:
/Users/me/.virtualenvs/py3cv/lib/python3.6/site-packages/cv2.so: mach-o, but wrong architecture
/usr/local/Cellar/opencv/3.4.1_5/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so: mach-o, but wrong architecture

工作口译员表示:

Python 3.6.4 (default, Dec 25 2017, 14:57:56) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin

当我进入python时。 当我跑import ctypes;print(ctypes.sizeof(ctypes.c_void_p))时 我得到:8

突破显示:

Python 3.6.4 (v3.6.4:d48ecebad5, Dec 18 2017, 21:07:28) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

当我运行import ctypes;print(ctypes.sizeof(ctypes.c_void_p))时: 我得到:4

任何想法出了什么问题?

name -a

的输出
Darwin MyMBP 17.5.0 Darwin Kernel Version 17.5.0: Fri Apr 13 19:32:32 PDT 2018; root:xnu-4570.51.2~1/RELEASE_X86_64 x86_64

1 个答案:

答案 0 :(得分:1)

对于要由可执行文件成功加载的 .so (共享对象),其架构必须匹配(在 OSX 上,这可以扩展为: .so 必须"包含"可执行文件的体系结构 - 作为 .so 可以捆绑多个体系结构。)

您安装的 OpenCV 版本是为(英特尔) 64位 构建的。这就是为什么它适用于64位 Python ,但不适用于32位的。

有关 Python 架构的更多详细信息,请查看[SO]: How do I determine if my python shell is executing in 32bit or 64bit mode on OS X? (@CristiFati's answer)