【问题标题】:How to link openCv with Python3 in mac Os如何在 mac Os 中将 openCv 与 Python3 链接起来
【发布时间】:2019-05-22 00:20:10
【问题描述】:

我的 mac os 中有两个版本的 python,第一个 python2.7 是系统自带的默认版本。后来我安装了我大部分时间使用的python3.7。

我最近使用自制软件安装了 openCV。 当我在 python2.7 中使用 openCV 时,它工作正常。

但问题是当我尝试将它与 python3 一起使用时。在 python3 中导入 cv2 会报错:ModuleNotFoundError: No module named 'cv2'

Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 03:03:55) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
Visit http://www.python.org/download/mac/tcltk/ for current 
information.

>>> import cv2
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
>>> 

有什么我可以做的,以便我可以将安装的 openCV 与 python3 链接?

感谢您的帮助

【问题讨论】:

  • 如果您在 OpenCV 之后构建/安装 python,您通常需要重新构建 OpenCV 以使其与您的新 Python 链接。如果您使用自制软件安装它们,您可以使用选项 --with-python3 重新安装 OpenCV(我认为)。但是,我会使用 CMake 在 MacOS 上从源代码构建 OpenCV。

标签: python-3.x macos opencv homebrew


【解决方案1】:

抱歉,由于您的设置与我的不同,我无法为您提供具体信息,但我相信我们可以帮您解决问题。

首先,当您安装软件包时,例如 OpenCV,它们往往会在某处创建一个名为 lib 的目录,其中包含您可以从该软件包调用的 C/C++ 函数。在该目录中,您通常会找到 “共享对象库”,它在 macOS 上通常以 “XXX.so” 结尾。更有趣的是,它们还包含一个名为 site-packages 的子目录,其中包含 Python 绑定(链接)。因此,在我的系统(可能与您的系统不同)上,我可以找到所有这些 site-packages 目录:

find / -type d -name site-packages 2>/dev/null

样本输出

/usr/local/lib/python3.7/site-packages
/usr/local/lib/python2.7/site-packages
...
...
/usr/local/Cellar/tbb/2018_U5/lib/python2.7/site-packages
/usr/local/Cellar/vips/8.6.5/lib/python3.7/site-packages

希望您可以看到 /usr/local/lib/python3.7/site-packages 很可能是 OpenCV 的所有 Python v3.7 绑定的候选者。

很好,现在我们知道如何找到 Python 绑定,我们需要告诉 Python 该信息。如何?好吧,不是没有道理,Python 会查看一个名为 PYTHONPATH 的环境变量来查找它的内容。因此,利用我们的技能和判断力,我们需要将我们在第一步中发现的内容与我们现在从第二步中知道的内容结合起来。所以我们这样做:

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.7/site-packages

一切都应该正常。我们需要做的就是把它放在我们的登录配置文件中(可能是$HOME/.profile),我们就可以在每次登录时准备好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 2016-03-21
    • 1970-01-01
    • 2017-01-18
    相关资源
    最近更新 更多