无法在python中导入dlib

Posted

技术标签:

【中文标题】无法在python中导入dlib【英文标题】:unable to import dlib in python 【发布时间】:2018-02-13 02:17:47 【问题描述】:

我按照here 的说明成功安装了 dlib for python。但是,当我尝试导入库时,我收到以下消息:

  >>> import dlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/dlib/__init__.py", line 1, in <module>
    from .dlib import *
ImportError: dlopen(/usr/local/lib/python2.7/site-packages/dlib/dlib.so, 2): Library not loaded: @rpath/libpng16.16.dylib
  Referenced from: /usr/local/lib/python2.7/site-packages/dlib/dlib.so
  Reason: image not found

我以前有(并卸载过)anaconda 并且在 python 3.6 中遇到了同样的问题。查看类似的questions 和响应,听起来我必须使用install_name_tool 命令。但是我不知道新的路径会是什么。我也不太明白为什么这是必要的。据我所知,引用的路径应该没问题。为什么 dlib 不会导入,我该怎么做才能使其成功导入?让我知道。谢谢

【问题讨论】:

错误告诉你什么问题。您缺少 libpng,或者您在安装配置期间缺少它。所以这看起来不像是一个成功的安装。仔细检查! 我把 libpng 从它的默认位置移走了,这个问题似乎已经解决了。谢谢! 【参考方案1】:

我不知道我是否会称之为解决方案,因为我仍然有问题,但我所做的是:install_name_tool -change @rpath/libpng16.16.dylib "/Library/Python/2.7/site-packages/dlib/dlib.so" /usr/local/lib/python2.7/site-packages/dlib/dlib.so

虽然我的安装存在其他问题,但这解决了手头的问题。我在我的默认 python 库中有 dlib,而不是在我的虚拟机中使用类似于路径的路径。所以我更改了路径以适合我的 VM 和所有其他安装包(例如 boost 和 cmake)

【讨论】:

以上是关于无法在python中导入dlib的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Python 3.5.2 中导入 itertools

无法在 Python3 中导入 gi.repository

无法在 python tkinter 中导入 ttk

无法使用 Pandas 在 Python 中导入数据

无法在 Python 中导入全局变量 [重复]

ImportError:无法在 python 中导入名称 COMError