Python中如何添加自定义模块


Posted in Python onJune 09, 2020

一般来说,我们会将自己写的Python模块与python自带的模块分开存放以达到便于维护的目的。那么如何在Python中添加自定义的模块呢?

在解答这个问题之前,我们首先要明确两点:

1.严格区分包(package)和文件夹。包的定义就是包含__init__.py的文件夹。如果没有__init__.py,那么就是普通的文件夹。

2.模块导入写法,注意只要包路径,不要文件夹路径。

Python 运行环境在查找库文件时是对 sys.path 列表进行遍历,如果我们想在运行环境中注册新的类库,主要有以下2种方法:

1. 在sys.path列表中添加新的路径。

2. 将库文件复制到sys.path列表中的目录里(如site-packages目录)。

我们可以通过运行一下代码来查看sys.path

import sys
print sys.path

运行结果

['/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', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/

lib/python/PyObjC', '/Library/Python/2.7/site-packages']

这两种办法中第一种比较简单,而且对环境的影响最小。

下面我们来看一下第一种方法具体如何操作:

在python安装目录的site-package文件夹中新建pythontab.pth,上面site-package的路径是:/Library/Python/2.7/site-packages,文件的内容是:需要导入的package所在的文件夹路径。

这样,Python 在遍历已知的库文件目录过程中,如果见到一个 .pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,这样 .pth 文件说指明的package也就可以被Python运行环境顺利找到, 我们就可以像使用内置模块一样引入自定义模块了。

如果缺省的sys.path中没有含有自己的模块或包的路径,我们也可以使用sys.path.apend方法来动态加入包路径。

知识点扩展:

Python中添加自定义模块原则:

1. 严格区分包和文件夹。包的定义就是包含__init__.py的文件夹。如果没有__init__.py,那么就是普通的文件夹。

2. 导入package。 在python 安装目录的site-package文件夹中新建xxx.pth,内容是需要导入的package所在的文件夹路径。

3. 导入模块。就是一般的模块导入写法,注意只要包路径,不要文件夹路径。

以上就是Python中如何添加自定义模块的详细内容,更多关于Python中添加自定义模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python定时执行之Timer用法示例
May 27 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
Python:合并两个numpy矩阵的实现
Dec 02 Python
Django实现列表页商品数据返回教程
Apr 03 Python
python中类与对象之间的关系详解
Dec 16 Python
Python中requests做接口测试的方法
May 30 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
Jun 09 #Python
Python如何避免文件同名产生覆盖
Jun 09 #Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 #Python
Python嵌入C/C++进行开发详解
Jun 09 #Python
Keras load_model 导入错误的解决方式
Jun 09 #Python
如何用python处理excel表格
Jun 09 #Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 #Python
You might like
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
js 页面输出值
2008/11/30 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
html数组字符串拼接的最快方法
2009/09/16 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
关于Python中异常(Exception)的汇总
2017/01/18 Python
Python中交换两个元素的实现方法
2018/06/29 Python
python实现机器学习之多元线性回归
2018/09/06 Python
pandas通过索引进行排序的示例
2018/11/16 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python应用文件读取与登录注册功能
2019/09/23 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
python实现随机加减法生成器
2020/02/24 Python
python列表的逆序遍历实现
2020/04/20 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
工作交流会欢迎词
2014/01/12 职场文书
网上书店创业计划书
2014/01/12 职场文书
个人党性剖析材料
2014/02/03 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
学校德育工作总结2015
2015/05/11 职场文书
mysql查询结果实现多列拼接查询
2022/04/03 MySQL