如何在 Ubuntu 14.04 中为 python3 安装 dlib

was*_*asd 4 python compiling c++ cmake software-installation

我正在按照安装指南https://cmusatyalab.github.io/openface/setup/进行操作。我做了:

 mkdir -p ~/src
 cd ~/src
 tar xf dlib-19.1.0.tar.gz
 cd dlib-19.1.0/python_examples
 mkdir build
 cd build
 cmake ../../tools/python
 cmake --build . --config Release
 sudo cp dlib.so /usr/local/lib/python3.4/dist-packages/
Run Code Online (Sandbox Code Playgroud)

它说此时我应该能够运行import dlib,但是如果我从 virtualenv 运行它会给我

ImportError: No module named dlib
Run Code Online (Sandbox Code Playgroud)

如果我从 virtualenv 外部运行它,它会给出:

ImportError: dynamic module does not define init function (PyInit_dlib)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如何为python安装dlib?

UPD:我为 Python2 尝试过同样的方法:

sudo cp dlib.so /usr/local/lib/python2.7/dist-packages/
Run Code Online (Sandbox Code Playgroud)

它适用于python2。那么如何对python3做同样的事情呢?

was*_*asd 8

我自己找到了解决方案,但感谢 @edwinksl 的提示。为了安装dlibpython3,最好使用pip

pip install dlib

你将需要boost python。为拿到它,为实现它:

sudo apt-get install libboost-all-dev

如果您有“Could NOT find PythonLibs (missing: PYTHON_LIBRARIES) (Required is at least version "3.4")” 错误,请确保您的 cmake > 2.8(在我的情况下是 3.2.2)。要安装 cmake > 2.8:

sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo apt-get install cmake
Run Code Online (Sandbox Code Playgroud)

那为我解决了这个问题。