Reputation: 753
I had python 2.7.3
and ipython 1.2
up and running correctly on my Linux
system (ubuntu 12.04
) but was trying to install an updated version of matplotlab needed for coursework.
After running this code line in the terminal
user$ sudo easy_install -U distribute
user$ export PYTHONHOME=/usr/lib/python2.7/
now every time I try and run python
or ipython
I get the error message
ImportError: no module named site
how do I reverse/fix this problem?? I'm so lost. I looked at other similar issues, but no one else used Linux
and I'm not sure what to do.
Upvotes: 26
Views: 90592
Reputation: 3523
TRY to unset your python path...
In Linux/Mac, you can use these commands:
unset PYTHONPATH
unset PYTHONHOME
Upvotes: 26
Reputation: 38492
you can unset PYTHONHOME
to use the system default, or export PYTHONHOME=/usr
to specify the prefix, to which Python will append '/lib/python2.7' (or whatever version it happens to be) to locate its libraries.
if you export PYTHONHOME=/usr/lib/python2.7
, Python looks for libraries in the nonexistent folder /usr/lib/python2.7/lib/python2.7
.
and if you export PYTHONHOME=
, you are telling Python to look for lib
in the current working directory:
jcomeau@aspire:~$ PYTHONHOME= strace -estat64 /usr/bin/python
stat64("lib/python2.7/", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib/python2.7", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
stat64("lib/python2.7/", 0xff873efc) = -1 ENOENT (No such file or directory)
stat64("lib/python2.7/plat-i386-linux-gnu", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib/python2.7", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
stat64("lib/python2.7/plat-i386-linux-gnu", 0xff873efc) = -1 ENOENT (No such file or directory)
stat64("lib/python2.7/lib-tk", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib/python2.7", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
stat64("lib/python2.7/lib-tk", 0xff873efc) = -1 ENOENT (No such file or directory)
stat64("lib/python2.7/lib-old", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib/python2.7", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
stat64("lib/python2.7/lib-old", 0xff873efc) = -1 ENOENT (No such file or directory)
stat64("lib/python2.7/lib-dynload", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib/python2.7", 0xff870ee0) = -1 ENOENT (No such file or directory)
stat64("lib", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
stat64("lib/python2.7/lib-dynload", 0xff873efc) = -1 ENOENT (No such file or directory)
ImportError: No module named site
Upvotes: 10
Reputation: 6661
Change the location of the standard Python libraries. By default, the libraries are searched in prefix/lib/pythonversion and exec_prefix/lib/pythonversion, where prefix and exec_prefix are installation-dependent directories, both defaulting to /usr/local.
When PYTHONHOME is set to a single directory, its value replaces both prefix and exec_prefix. To specify different values for these, set PYTHONHOME to prefix:exec_prefix.
Try to clean up your PYTHONHOME
:
user$ export PYTHONHOME=
As for installing matplotlib, I would recommend the following:
sudo apt-get install python-matplotlib
(details here)
Upvotes: 18