在 python 3.6 上安装 opencv 3.2 的问题

Posted

技术标签:

【中文标题】在 python 3.6 上安装 opencv 3.2 的问题【英文标题】:Issues installing opencv 3.2 on python 3.6 【发布时间】:2020-06-18 19:33:30 【问题描述】:

我正在尝试使用我的 Mac 终端在远程服务器上安装 OpenCV 3.2。

当我使用命令 conda install -c menpo opencv3=3.2.0 时,它会安装,但随后导入 cv2 会出现错误:

File "<stdin>", line 1, in <module> ImportError: libpng12.so.0: cannot open shared object file: No such file or directory

我不确定这个文件在我的远程服务器上的什么位置,我在我的虚拟环境库或远程服务器中找不到任何地方,它会在哪里?如果我没有它,我可以将它安装在我的 mac 或远程服务器上的某个地方并将它放在我的虚拟环境库中吗?我尝试使用sudo apt install libpng12-0,但我的远程服务器没有使用 sudoers 文件。

我也尝试过其他方法,例如conda install opencv=3.2.0conda install -c conda-forge opencv=3.2.0conda install -c conda-forge opencv等...但这些方法似乎无法正确安装并出现错误。

【问题讨论】:

投反对票的原因? 【参考方案1】:

对我来说,在 Ubuntu 19.10 中,我在 /usr/lib/x86_64-linux-gnu/ 中有一个 libpng16.so

我通过在终端中输入locate libpng 找到了它。这是一个较新的版本,因此可能会给您带来您遇到的问题。

没有远程服务器上的任何信息,很难预测它可能在哪里。您可以/usr/lib//usr/local/lib/ 中找到它。您还可以尝试将工作目录(或可执行目录,尚未尝试过)作为一种快速而肮脏的解决方案。如果您没有管理员权限,则可能值得发送一封电子邮件/与有权限的人一起打开票证,他们可以为您指明正确的方向(如果您必须加载特定模块才能在路径等)。

如果你很勇敢并且stupid,你也可以设置LD_LIBRARY_PATH 变量来包含你放入库的任何文件夹。

【讨论】:

【参考方案2】:

在this 链接的第 2 步中安装以下所有软件包。 然后重启你的机器并再次尝试导入 cv2。

大多数远程机器不会有任何视频驱动程序,如 x-org 等,或任何 GUI 或对 PNG 或 JPEG 等的视觉支持。所以可能会发生这样的问题。

【讨论】:

那是个问题.. opencv 读取图像或做任何需要操作系统的本机驱动程序或库来读取数据的事情.. 不安装它们我不知道你怎么能做到。 嗯,我收到错误“用户名不在 sudoers 文件中”,所以我会看看我是否可以解决这个问题并处理您发送的链接。

以上是关于在 python 3.6 上安装 opencv 3.2 的问题的主要内容,如果未能解决你的问题,请参考以下文章

python 3.6 安装 opencv 3.4

python 3.6关于Opencv的安装支持

无法使用 opencv 3.1 和 python 3.6 打开视频

无法在 python 3.6 中导入 cv2 OpenCV 2.4.13

Python 3.6 + opencv 3.4 中imshow 函数报错

linux下安装python 3.6