Python探索之修改Python搜索路径


Posted in Python onOctober 25, 2017

当Python执行import语句时,它会在一些路径中搜索Python模块和扩展模块。可以通过sys.path查看这些路径,比如:

>>> import sys 
>>> sys.path 
['', '/usr/lib/python2.7/site-packages/demo_nova_hooks-5-py2.7.egg', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages']

其中的空字符串表示当前工作目录。

         当安装第三方模块的时候,如果不是按照标准方式安装,则为了能够引用(import)这些模块,必须将这些模块的安装路径添加到sys.path中,有以下几种方法:

         1:最简单的方法,是在sys.path的某个目录下添加路径配置文件,最常见的就是在…/site-package/目录下。路径配置文件的扩展名是”.pth”,其中的每一行包含一个单独的路径,该路径会添加到sys.path列表中(已验证)。”.pth”中的路径既可以是绝对路径,也可以是相对路径,如果是相对路径,则是相对于包含”.pth”文件的路径而言的。

         2:另一种方法就是在Python标准库中修改site.py文件,并编辑sys.path。除非使用了-S开关选项,否则site.py在Python解释器加载时会自动被引入(执行),作用是加载site-packages中的包和模块到python的sys.path里面。所以,可以编辑site.py,然后加上下面的两行内容即可:

import sys 
sys.path.append('/xxx/xxxxx/')

3:有两个环境变量可以编辑sys.path。 PYTHONHOME会改变prefix和exec_prefix的值,默认情况下prefix和exec_prefix都是/usr/local。库搜索路径就是prefix/lib/pythonversion 和 exec_prefix/lib/pythonversion。

如果设置PYTHONHOME为单独的路径,则该路径会替换prefix和exec_prefix的值,如果需要prefix和exec_prefix的值不同,则置PYTHONHOME为”prefix:exec_prefix”。比如如果将PYTHONHOME设置为”/www/python”,则sys.path就会变为
['', '/www/python/lib/pythonX.Y/', '/www/python/lib/pythonX.Y/plat-linux2', ...].

注意,修改了PYTHONHOME后,系统可能因找不到site模块而无法启动python解释器,所以,除非特别需求,不要修改该变量。

[root@localhost ~]# python 
ImportError: No module named site

PYTHONPATH 环境变量指定的一系列路径,会添加到sys.path中。比如如果PYTHONPATH设置为”/www/python:/opt/py”的话,则sys.path会以 ['/www/python','/opt/py'].开头。注意这些路径必须存在,因为site模块会将不存在的路径删除。

总结

关于Python修改路径的问题,就先介绍到这里,以后如果有什么好的关于Python的文章,会第一时间分享给大家。有什么问题可以随时留言,欢迎大家交流参考。本站几篇Python的文章,分享给大家:浅谈python中copy和deepcopy中的区别、python实现微信接口(itchat)详细介绍、基于Python和Scikit-Learn的机器学习探索。

追逐梦想的路上,我已然迟到了许多年,现在,该上车了。。

Python 相关文章推荐
python的pdb调试命令的命令整理及实例
Jul 12 Python
Python编程实现蚁群算法详解
Nov 13 Python
Python实现的归并排序算法示例
Nov 21 Python
对pandas中Series的map函数详解
Jul 25 Python
python中map的基本用法示例
Sep 10 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
Aug 22 Python
Python使用循环神经网络解决文本分类问题的方法详解
Jan 16 Python
Python容器类型公共方法总结
Aug 19 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
Pycharm github配置实现过程图解
Oct 13 Python
python中 logging的使用详解
Oct 25 #Python
python下载文件记录黑名单的实现代码
Oct 24 #Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 #Python
Flask数据库迁移简单介绍
Oct 24 #Python
python里使用正则表达式的组嵌套实例详解
Oct 24 #Python
Scrapy的简单使用教程
Oct 24 #Python
详解python里使用正则表达式的分组命名方式
Oct 24 #Python
You might like
基于mysql的论坛(2)
2006/10/09 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
js遍历td tr等html元素
2012/12/13 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
Bootstrap中表单控件状态(验证状态)
2016/08/04 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
js实现日历与定时器
2017/02/22 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
深入探究node之Transform
2017/07/20 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
Python Requests 基础入门
2016/04/07 Python
python 文件操作删除某行的实例
2017/09/04 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
python中pip的安装与使用教程
2018/08/10 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
python贪吃蛇游戏代码
2020/04/18 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
使用Python封装excel操作指南
2021/01/29 Python
博士生入学考试推荐信
2013/11/17 职场文书
服务宗旨标语
2014/07/01 职场文书
婚礼答谢礼品
2015/01/20 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP