I have created a python virtual environment using virtualenv, after activating it, I can see where is Python installed in my shell as following:
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:
include <lib path of python3.x>
to /etc/ld.so.conf
(Something like: include /opt/python361/lib
or include /usr/local/lib
)sudo /sbin/ldconfig -v
.For me, libpython3.6m.so.1.0
was in the folder where I downloaded Python source (~/Python3.6.9
).
I simply did : sudo cp ~/Python3.6.9/libpython3.6m.so.1.0 /usr/local/lib/python3.6/
and : export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/python3.6
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.