2017-10-25 3 views
0

Zuerst verwende ich ARM7-Architektur. I heruntergeladen dlib Bibliothek mit Pre-Build-Rad-Datei dlib-19.7.0-cp27-cp27mu-linux_armv7l.whl und Boost.python Bibliotheken herunterladen und baute sie für Python-Bibliotheken, und wenn import dlib in python2.7 ich diesen Fehler bekamImportError: libboost_python.so.1.65.1: Gemeinsame Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein Verzeichnis

>>> 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 

Dann suchte ich nach libboost_python.so.1.65.1 in meinen Verzeichnissen und gefunden

:~# whereis libboost_python.so.1.65.1 
libboost_python.so.1.65: /usr/local/lib/libboost_python.so.1.65.1 

und gefunden, dass -Pfad (/ usr/local/lib /) nicht ein Teil des PATH Variable war, so, I hinzugefügt

:~# export PATH=$PATH:/usr/local/lib 

und dafür gesorgt, dass es schien richtig

:~# echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/lib 

und versuchte es noch einmal, aber nichts, der gleiche Fehler gegeben. Ich habe auch libboost-all-dev mit apt-get installiert und mache danach update, aber auch der gleiche Fehler entsteht. Also, was ist der Grund für diesen Fehler und wie kann ich ihn überwinden?

Danke für Beratung.

Antwort

1

Ich habe den gleichen Fehler. keine Notwendigkeit, libboost-dev-all zu installieren es ist ein Overkill ...

Sie kompiliert den libboost für Python nicht korrekt. Ich habe das selbe aber nur mit einem Flag --with-libraries = python gemacht und genau den gleichen Fehler bekommen.

Ich wusste, dass mein Kompilieren nicht gut war und ein paar Versuche haben mich dazu gebracht, diese Arbeit zu machen.

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 

achten Sie auf die Fahne --with-python = python3.5 Sie wahrscheinlich brauchen python2.7 passieren stattdessen

hier, wie Sie können es testen:

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 

wenn Sie erhalten einen Fehler wie folgt aus:

>>> 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 

stellen Sie sicher, fügen Sie/usr/local/lib zu LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 
+0

Danke, ich werde das versuchen. – mostafayasin

+0

Fertig, danke. – mostafayasin

Verwandte Themen