path – How can I troubleshoot Python Could not find platform independent libraries
path – How can I troubleshoot Python Could not find platform independent libraries
If you made a virtual env, then deleted that python installation, youll get the same error. Just rm -r
your venv folder, then recreate it with a valid python location and do pip install -r requirements.txt
and youll be all set (assuming you got your requirements.txt right).
Try export PYTHONHOME=/usr/local
. Python should be installed in /usr/local
on OS X.
This answer has received a little more attention than I anticipated, Ill add a little bit more context.
Normally, Python looks for its libraries in the paths prefix/lib
and exec_prefix/lib
, where prefix
and exec_prefix
are configuration options. If the PYTHONHOME
environment variable is set, then the value of prefix
and exec_prefix
are inherited from it. If the PYTHONHOME
environment variable is not set, then prefix
and exec_prefix
default to /usr/local
(and I believe there are other ways to set prefix
/exec_prefix
as well, but Im not totally familiar with them).
Normally, when you receive the error message Could not find platform independent libraries <prefix>
, the string <prefix>
would be replaced with the actual value of prefix
. However, if prefix
has an empty value, then you get the rather cryptic messages posted in the question. One way to get an empty prefix
would be to set PYTHONHOME
to an empty string. More info about PYTHONHOME
, prefix
, and exec_prefix
is available in the official docs.
path – How can I troubleshoot Python Could not find platform independent libraries
I had this issue while using Python installed with sudo make altinstall
on Opensuse linux. It seems that the compiled libraries are installed in /usr/local/lib64
but Python is looking for them in /usr/local/lib
.
I solved it by creating a dynamic link to the relevant directory in /usr/local/lib
sudo ln -s /usr/local/lib64/python3.8/lib-dynload/ /usr/local/lib/python3.8/lib-dynload
I suspect the better thing to do would be to specify libdir
as an argument to configure
(at the start of the build process) but I havent tested it that way.
Edit: Can confirm that ./configure --libdir=/usr/local/lib
works, and is probably better than creating links.