Python/IPython ImportError: no module named site

2019-01-17 15:42发布

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.

3条回答
Animai°情兽
2楼-- · 2019-01-17 16:19

PYTHONHOME

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)

查看更多
3楼-- · 2019-01-17 16:23

TRY to unset your python path...

In Linux/Mac, you can use these commands:

unset PYTHONPATH
unset PYTHONHOME
查看更多
Explosion°爆炸
4楼-- · 2019-01-17 16:23

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
查看更多
登录 后发表回答