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实现电子词典
Apr 23 Python
python 动态获取当前运行的类名和函数名的方法
Apr 15 Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
Python模块包中__init__.py文件功能分析
Jun 14 Python
使用Python写CUDA程序的方法
Mar 27 Python
Python递归函数定义与用法示例
Jun 02 Python
Python自定义线程池实现方法分析
Feb 07 Python
深入理解Django自定义信号(signals)
Oct 15 Python
python实现二维数组的对角线遍历
Mar 02 Python
python实现猜数游戏
Mar 27 Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 Python
讲解Python实例练习逆序输出字符串
May 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 curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
js控制frameSet示例
2013/09/10 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
js实现登录验证码
2016/12/22 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
element ui分页多选,翻页记忆的实例
2019/09/03 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
Python中运算符"=="和"is"的详解
2016/10/08 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
银行见习期自我鉴定
2014/01/29 职场文书
施工材料员岗位职责
2014/02/12 职场文书
对公司合理化的建议书
2014/03/12 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
2015年统战工作总结
2015/05/19 职场文书
《风筝》教学反思
2016/02/23 职场文书