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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
python冒泡排序算法的实现代码
Nov 21 Python
Python生成随机数的方法
Jan 14 Python
在Python的Django框架中包装视图函数
Jul 20 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
小白入门篇使用Python搭建点击率预估模型
Oct 12 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
Python获取字典中某个key的value
Apr 13 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
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
PHP获取本周第一天和最后一天示例代码
2014/02/24 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
css图片自适应大小
2007/11/28 Javascript
asp 取文本框名称代码
2008/12/02 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
Three.js学习之网格
2016/08/10 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python实现随机森林random forest的原理及方法
2017/12/21 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
学生党员公开承诺书
2014/05/28 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers