opencv安装在osx上没有合适的imag

2024-06-02 08:34:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我按照本教程安装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

工作口译员显示:

^{pr2}$

当我进入python时。 当我运行import ctypes;print(ctypes.sizeof(ctypes.c_void_p)) {cd2>得到}

打破的一个显示:

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

Tags: solibpackagessitevirtualenvsctypescv2opencv
1条回答
网友
1楼 · 发布于 2024-06-02 08:34:42

要使一个.so(共享对象)被可执行文件成功加载,它们的体系结构必须匹配(在OSX上,这可以扩展为:.so必须“包含”可执行文件的体系结构-作为。因此可以将多个体系结构捆绑在内部)。在

您安装的OpenCV版本是为英特尔64位构建的。这就是它在64位Python上工作的原因,但在32位的Python上却不行。在

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

相关问题 更多 >