python: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory
Solution 1:
Try adding the python3.4's lib path to the $LD_LIBRARY_PATH
environment variable.
First find out the lib path of python3.4 (depends on how you installed python3.4)
For me it was: /opt/python361/lib
, then add it to environment variable like so:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/python361/lib
P.S.
I came across a similar problem while using virtualenv
with python3.6
, and I fixed it like so:
- First, append
include <lib path of python3.x>
to/etc/ld.so.conf
(Something like:include /opt/python361/lib
orinclude /usr/local/lib
) - Then, activate the new configuration by running
sudo /sbin/ldconfig -v
.
Solution 2:
Another way is adding LDFLAGS="-Wl,-rpath /usr/local/lib"
in configure, for example
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
/usr/local/lib
is the path where libpython3.*.so
files are in
Solution 3:
For Python 3.6, it was fixed by
sudo apt-get install libpython3.6-dev
Solution 4:
export LD_LIBRARY_PATH=[your python path to libpython3.4m.so]
libpython3.4m.so
is under your python source from which you built it.
Put it in your .bashrc to set it at login automatically.
I can't force virtualenv to 3.4 on my machine but you can see that under lib
of your virtualenv there's just a bunch of symlink to your local python installation. I guess libpython3.4m.so
is fetch by one of those.