首先,我使用的是ARM7架构。
我使用预构建的轮文件dlib
下载了dlib-19.7.0-cp27-cp27mu-linux_armv7l.whl
库并下载了Boost.python
库并为python库构建了它们,并且在python2.7中import dlib
时我得到了该错误< / p>
>>> import dlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/dlib/__init__.py", line 1, in <module>
from .dlib import *
ImportError: libboost_python.so.1.65.1: cannot open shared object file: No such file or directory
然后我在我的目录中搜索libboost_python.so.1.65.1
并找到它
:~# whereis libboost_python.so.1.65.1
libboost_python.so.1.65: /usr/local/lib/libboost_python.so.1.65.1
并发现路径(/ usr / local / lib /)不是PATH
变量的一部分,所以,我添加了它
:~# export PATH=$PATH:/usr/local/lib
并确保它正确放置
:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/lib
再次尝试但没有,出现同样的错误。我还使用libboost-all-dev
安装了apt-get
并在此之后生成update
,但也出现了同样的错误。那么,这个错误的原因是什么,我该如何克服呢?
感谢您的建议。
答案 0 :(得分:3)
我有同样的错误。 不需要安装libboost-dev-所有这都是一种过度杀伤......
你没有正确编译python的libboost。 我已经做了同样的事情但只有一个标志--with-libraries = python并且得到完全相同的错误。
我知道我的编译不好,一些试验让我做这项工作。
wget https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.gz \
&& tar zxf boost_1_65_1.tar.gz \
&& cd boost_1_65_1 \
&& ./bootstrap.sh --with-libraries=python --with-python=python3.5 \
&& ./b2 install
注意标志--with-python = python3.5你可能需要传递python2.7而不是
这里有你如何测试它:
import dlib
import numpy as np
image = np.arange(100*100*3).reshape(100, 100, 3)
fd = dlib.get_frontal_face_detector()
faces, scores, _ = fd.run(image, 0, 0)
faces, scores, _ = fd.run(image, 0, -100)
print(scores)
-2.38875
-2.77087
-2.82851
-2.84197
-3.05489
-3.0879
如果你收到这样的错误:
>>> import dlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/dist-packages/dlib/__init__.py", line 1, in <module>
from .dlib import *
ImportError: libboost_python3.so.1.65.1: cannot open shared object file: No such file or directory
确保将/ usr / local / lib添加到LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH