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 相关文章推荐
tornado捕获和处理404错误的方法
Feb 26 Python
Python字符编码判断方法分析
Jul 01 Python
python用fsolve、leastsq对非线性方程组求解
Dec 15 Python
Django异步任务之Celery的基本使用
Mar 23 Python
python网络应用开发知识点浅析
May 28 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
基于python实现检索标记敏感词并输出
May 07 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 Python
全网非常详细的pytest配置文件
Jul 15 Python
Python find()、rfind()方法及作用
Dec 24 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/10/09 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
php汉字转拼音的示例
2014/02/27 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
javascript 控制弹出窗口
2007/04/10 Javascript
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
python 有效的括号的实现代码示例
2019/11/11 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
德国足球商店:OUTFITTER
2019/05/06 全球购物
Android面试题及答案
2015/09/04 面试题
优秀大学生自荐信
2014/06/09 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python