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中的装饰器用法详解
Jan 14 Python
python生成器表达式和列表解析
Mar 10 Python
python下读取公私钥做加解密实例详解
Mar 29 Python
python负载均衡的简单实现方法
Feb 04 Python
pycham查看程序执行的时间方法
Nov 29 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
Python3爬楼梯算法示例
Mar 04 Python
python numpy数组中的复制知识解析
Feb 03 Python
利用python下载scihub成文献为PDF操作
Jul 09 Python
Manjaro、pip、conda更换国内源的方法
Nov 17 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 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
PHP中的日期及时间
2006/11/23 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
最短的IE判断代码
2011/03/13 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
详解vue-router基本使用
2017/04/18 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
jQuery实现穿梭框效果
2021/01/19 jQuery
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
python中reload(module)的用法示例详解
2017/09/15 Python
python 处理string到hex脚本的方法
2018/10/26 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
python交易记录整合交易类详解
2019/07/03 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
学生党员思想汇报范文
2014/01/09 职场文书
食品安全责任书范本
2015/05/09 职场文书
教育读书笔记
2015/07/02 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
导游词之山东孔庙
2019/11/04 职场文书
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android