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批量按比例缩小图片脚本分享
May 21 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
Jul 02 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
详解Python中的动态属性和特性
Apr 07 Python
python3安装crypto出错及解决方法
Jul 30 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
python getpass模块用法及实例详解
Oct 07 Python
python 实现dict转json并保存文件
Dec 05 Python
基于numpy中的expand_dims函数用法
Dec 18 Python
Python调用REST API接口的几种方式汇总
Oct 19 Python
Python 中的Sympy详细使用
Aug 07 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
php Undefined index的问题
2009/06/01 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
js倒计时抢购实例
2015/12/20 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
[原创]pip和pygal的安装实例教程
2017/12/07 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
《乞巧》教学反思
2014/02/27 职场文书
好学生评语大全
2014/05/05 职场文书
团委工作总结2015
2015/04/02 职场文书
Github 使用python对copilot做些简单使用测试
2022/04/14 Python
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电