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实现根据月份和日期得到星座的方法
Mar 27 Python
编写Python CGI脚本的教程
Jun 29 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
深入理解Python中的*重复运算符
Oct 28 Python
python实现NB-IoT模块远程控制
Jun 20 Python
分析python请求数据
Aug 19 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
在Python中构建增广矩阵的实现方法
Jul 01 Python
Django 外键的使用方法详解
Jul 19 Python
python统计指定目录内文件的代码行数
Sep 19 Python
Python importlib模块重载使用方法详解
Oct 13 Python
Python 中random 库的详细使用
Jun 03 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
linux下php上传文件注意事项
2016/06/11 PHP
javascript比较文档位置
2008/04/08 Javascript
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
Python中的列表知识点汇总
2015/04/14 Python
python文件的md5加密方法
2016/04/06 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
素质拓展感言
2014/01/29 职场文书
打架检讨书300字
2014/02/02 职场文书
残疾人小组计划书
2014/04/27 职场文书
活动总结报告怎么写
2014/07/03 职场文书
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记