<span style="background-color: rgb(255, 255, 255); font-family: 微软雅黑, 宋体, sans-serif;">如何将路径“永久"添加到sys.path?</span>

  sys.path是python的搜索模块的路径集,是一个list

  

  复制代码 代码如下:

  ['', 'C:\\WINDOWS\\system32\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\ \lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\Python26 ', 'C:\\Python26\\lib\\site-packages', 'C:\\Python26\\lib\\site-packages\\win32' , 'C:\\Python26\\lib\\site-packages\\win32\\lib', 'C:\\Python26\\lib\\site-packa ges\\Pythonwin']

  可以在python 环境下使用sys.path.append(path)添加相关的路径,但在退出python环境后自己添加的路径就会自动消失!

  在python脚本中修改

  

  复制代码 代码如下:

import sys
 sys.path.append('c:\\mypythonlib')

  为解决这个问题,可以有以下方法:

  1. 将自己做的py文件放到 site_packages 目录下:

  下面命令显示了 site-packages 目录:

  

  复制代码 代码如下:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib() "

  但是这样做会导致一个问题,即各类模块都放到此文件夹的话,会导致乱的问题,这一点是显而易见的。

  注意,也不创建子文件夹,再将自己的模块放到子文件夹解决问题,这会导致使用import 语句时错误。

  2. 使用pth文件,在 site-packages 文件中创建 .pth文件,将模块的路径写进去,一行一个路径,以下是一个示例,pth文件也可以使用注释:

# .pth file for the my project(这行是注释)
 E:\DjangoWord
 E:\DjangoWord\mysite
 E:\DjangoWord\mysite\polls

  这个不失为一个好的方法,但存在管理上的问题,而且不能在不同的python版本中共享。

  3. 使用PYTHONPATH环境变量,在这个环境变量中输入相关的路径,不同的路径之间用逗号(英文的!)分开,如果PYTHONPATH 变量还不存在,可以创建它!

  路径会自动加入到sys.path中,而且可以在不同的python版本中共享,应该是一样较为方便的方法。

python相关的环境变量有那些,请参考:

  在页面上找到PYTHONPATH

wenchao测试

[root@localhost site-packages]# more path.pth 
/root/Desktop/data/download/django/mysite16_2/
/root/Desktop/data/download/django/mysite16_5_demo/
/root/Desktop/data/bwhite/site-packages/
[root@localhost site-packages]#



[root@localhost mysite16_5_demo4]# echo $PYTHONPATH

[root@localhost mysite16_5_demo4]# export PYTHONPATH=/home/
[root@localhost mysite16_5_demo4]# echo $PYTHONPATH
/home/
[root@localhost mysite16_5_demo4]# PYTHON
-bash: PYTHON: command not found
[root@localhost mysite16_5_demo4]# python
Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
['', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg', '/usr/lib/python2.6/site-packages/pip-1.5.6-py2.6.egg', '/home', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gst-0.10', '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib64/python2.6/site-packages/webkit-1.0', '/usr/lib/python2.6/site-packages', '/root/Desktop/data/download/django/mysite16_2', '/root/Desktop/data/download/django/mysite16_5_demo', '/root/Desktop/data/bwhite/site-packages']
>>>