Python中查看与配置搜索路径sys.path的方法
本文介绍如何在Python中查看当前模块搜索路径sys.path,包括通过import sys和sys.path命令获取。详细讲解临时添加路径的两种方法:使用sys.path.append()仅对当前会话有效,以及设置PYTHONPATH环境变量对所有Python实例生效。此外,还介绍了永久添加路径的两种方案:在现有路径下创建包含site.addsitedir()调用的.pth文件,或在.bash_profile中配置环境变量。
查看Python搜索路径sys.path
了解如何查看Python搜索包的路径:
Python的模块搜索路径信息存储在sys.path列表中。
查看当前搜索路径的方法如下:
import sys
sys.path
临时添加搜索路径的方法
以下是临时添加Python搜索包路径的几种方法:
方法1:(在Python交互环境中执行)
import sys
sys.path.append('路径')
(这种方式仅对当前Python进程有效,关闭后失效)
方法2:
export PYTHONPATH=路径
(这种方式对当前Shell会话中启动的所有Python进程有效)
永久配置搜索路径的方法
若要永久写入sys.path,可采用以下方法:
方法1:
在已有的sys.path搜索路径目录下添加一个.pth文件,文件内容格式为:
import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")
方法2:
在home文件夹下的.bash_profile文件中添加下面一行:
export PYTHONPATH=路径
不同Python环境的路径差异
注意,启动不同的Python环境之后sys.path的值是不同的,例如:
启动conda下的Python时sys.path的值如下所示:
[
'',
'/Users/zj_macbook/anaconda/lib/python27.zip',
'/Users/zj_macbook/anaconda/lib/python2.7',
'/Users/zj_macbook/anaconda/lib/python2.7/plat-darwin',
'/Users/zj_macbook/anaconda/lib/python2.7/plat-mac',
'/Users/zj_macbook/anaconda/lib/python2.7/plat-mac/lib-scriptpackages',
'/Users/zj_macbook/anaconda/lib/python2.7/lib-tk',
'/Users/zj_macbook/anaconda/lib/python2.7/lib-old',
'/Users/zj_macbook/anaconda/lib/python2.7/lib-dynload',
'/Users/zj_macbook/anaconda/lib/python2.7/site-packages',
'/Users/zj_macbook/anaconda/lib/python2.7/site-packages/Sphinx-1.4.6-py2.7.egg',
'/Users/zj_macbook/anaconda/lib/python2.7/site-packages/aeosa',
'/Users/zj_macbook/anaconda/lib/python2.7/site-packages/setuptools-27.2.0-py2.7.egg'
]
以上
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python
的python的sys.path的值
[
'',
'/usr/local/lib/python2.7/site-packages/six-1.10.0-py2.7.egg',
'/Library/Python/2.7/site-packages/twilio-6.3.dev0-py2.7.egg',
'/Library/Python/2.7/site-packages/httplib2-0.9.2-py2.7.egg',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/Users/zj_macbook/Library/Python/2.7/lib/python/site-packages',
'/usr/local/lib/python2.7/site-packages',
'/usr/local/Cellar/numpy/1.12.0/libexec/nose/lib/python2.7/site-packages',
'/usr/local/Cellar/protobuf/3.2.0/libexec/lib/python2.7/site-packages',
'/Library/Python/2.7/site-packages',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC'
]
以上关于Python搜索包路径的配置方法就是本文的全部内容,希望能为大家提供参考。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









