ImportError: libboost_python.so.1.65.1: cannot open shared object file: No such file or directory

Question:

First of all, I am using ARM7 architecture .
I downloaded dlib library using pre-build wheel file dlib-19.7.0-cp27-cp27mu-linux_armv7l.whl and download Boost.python libraries and built them for python libraries, and when import dlib in python2.7 I got that error

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

Then I searched for libboost_python.so.1.65.1 in my directories and found it

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

and found out that path (/usr/local/lib/) wasn’t a part of PATH variable , so, I added it

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

and made sure that it placed correctly

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

and tried again but nothing, the same error appeared. I also installed libboost-all-dev using apt-get and make update after that but also the same error arise. So, what is the reason for that error and how can I overcome it ?

Thanks for advise.

Asked By: M Y

||

Answers:

I’ve got the same error.
no need to install libboost-dev-all it’s an overkill…

You did not compile the libboost for python correctly.
I’ve done the same but just with one flag –with-libraries=python and got exactly the same error.

I knew my compiling was not good and a few trials got me to make this work.

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

pay attention to the flag –with-python=python3.5 you will probably need to pass python2.7 instead

here’s how you can test it:

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

if you get an error like this:

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

make sure you add /usr/local/lib to the LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Answered By: Ami Mahloof

I have a similar problem, I have compiled boost from source and have boost version libboost1.81.0 installed in my /usr/local/lib. But I get the error as follows. Openvdb has compiled from source without error.

        import pyopenvdb
ImportError: libboost_python38.so.1.68.0: cannot open shared object file: No such file or directory

I have tried compiling with the flags as mentioned, aswell as adding

export LD_LIBRARY_PATH=/usr/local/lib

to my .bashrc, but still the error remains.

Any ideas?

Answered By: Joseph Rowell
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.