解決問題:啓動Python時報「ImportError: No module named site」錯誤

問題:
設置了Python的路徑,但啓動Python時老是報「ImportError: No module named site」這個錯誤。python

 [root@tZ game]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/lib/python2.7:.:/usr/lib/python2.7:/usr/lib/python2.7/site-packages:/usr/bin/python:/usr/lib64/python2.7
[root@tZ game]# echo $PYTHONHOME
/usr/bin/
[root@tZ game]# echo $PYTHONPATH
/usr/bin/
[root@tZ game]# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /usr/include/python2.7 /usr/share/man/man1/python.1.gz
[root@tZ game]# which python
/usr/bin/pythonlinux

#-----------問題點-----------
[root@tZ game]# python
ImportError: No module named site  python2.7

#----------查看問題點相關-----------
[root@tZ game]# find / -name site.py
/usr/lib64/python2.7/site.pyui

#---------當前錯誤狀況下-v的顯示----------
[root@tZ etc]# python -v
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
ImportError: No module named site
# clear __builtin__._
# clear sys.path
# clear sys.argv
# clear sys.ps1
#....更多信息未列出.net

#---------百度查看正常狀況的-v顯示---------
# python -v
 # installing zipimport hook 
import zipimport # builtin 
# installed zipimport hook 
# /usr/lib/python2.7/site.pyc matches /usr/lib/python2.7/site.py 
import site # precompiled from /usr/lib/python2.7/site.pyc #----------------差異之處
# /usr/lib/python2.7/os.pyc matches /usr/lib/python2.7/os.py 
import os # precompiled from /usr/lib/python2.7/os.pyc 
import errno # builtin 
import posix # builtin orm

看起來導入site時,還須要預編譯的site.pyc文件。
基本認定是模塊路徑問題,致使找不到導入庫模塊。ip


解決:
查看Python路徑相關環境變量的意義。get

PYTHONHOME:指定Python的標準庫。
PYTHONPATH:用於擴充Python查找模塊文件的路徑。it

這裏是導入site模塊時出錯,因此應該在PYTHONPATH上增長site模塊的路徑。io

查找site相關文件的路徑:
[root@tZ etc]# find / -name site.py*
/usr/lib64/python2.7/site.pyc
/usr/lib64/python2.7/site.py
/usr/lib64/python2.7/site.pyo
增長路徑到環境變量:
export PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.7

檢查效果:
[root@tZ etc]# python -v
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# /usr/lib64/python2.7/site.pyc matches /usr/lib64/python2.7/site.py
import site # precompiled from /usr/lib64/python2.7/site.pyc
# /usr/lib64/python2.7/os.pyc matches /usr/lib64/python2.7/os.py
說明已經解決。

直接啓動Python試試:
[root@tZ etc]# python
Python 2.7.5 (default, Jun 17 2014, 18:11:42)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

證明問題解決了。