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 相关文章推荐
一则python3的简单爬虫代码
May 26 Python
python创建列表和向列表添加元素的实现方法
Dec 25 Python
Python爬虫抓取代理IP并检验可用性的实例
May 07 Python
numpy数组之存取文件的实现示例
May 24 Python
python scipy卷积运算的实现方法
Sep 16 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 Python
django queryset相加和筛选教程
May 18 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
Aug 19 Python
python动态规划算法实例详解
Nov 22 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 Python
Python语言中的数据类型-序列
Feb 24 Python
Python如何使用循环结构和分支结构
Apr 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
php简单的留言板与回复功能具体实现
2014/02/19 PHP
PHP中echo和print的区别
2014/08/28 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
浅析Python中的多进程与多线程的使用
2015/04/07 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
知识竞赛主持词
2014/03/26 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
创先争优一句话承诺
2014/05/29 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
redis复制有可能碰到的问题汇总
2022/04/03 Redis