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调用windows api锁定计算机示例
Apr 17 Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
Python JSON格式数据的提取和保存的实现
Mar 22 Python
Python基础之函数的定义与使用示例
Mar 23 Python
Django model select的多种用法详解
Jul 16 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 Python
详解Python 3.10 中的新功能和变化
Apr 28 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实现阳历阴历互转的方法
2015/10/28 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
javascript下过滤数组重复值的代码
2007/09/10 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
JS动画定时器知识总结
2018/03/23 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
Python使用matplotlib简单绘图示例
2018/02/01 Python
python实现顺序表的简单代码
2018/09/28 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
python如何处理程序无法打开
2020/06/16 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
方正Java笔试题
2014/07/03 面试题
合作协议书怎么写
2014/04/18 职场文书
后勤工作个人总结
2015/02/28 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
民事调解协议书
2016/03/21 职场文书
介绍一下28个JS常用数组方法
2022/05/06 Javascript