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使用PyV8执行javascript代码示例分享
Dec 04 Python
使用Python中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
Django入门使用示例
Dec 12 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
解决Python3下map函数的显示问题
Dec 04 Python
PyCharm刷新项目(文件)目录的实现
Feb 14 Python
python 画条形图(柱状图)实例
Apr 24 Python
python中adb有什么功能
Jun 07 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
Python字符串三种格式化输出
Sep 17 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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
JS经典正则表达式笔试题汇总
2016/12/15 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
Python中__new__与__init__方法的区别详解
2015/05/04 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Django中间件实现拦截器的方法
2018/06/01 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
现场活动策划方案
2014/08/22 职场文书
教师个人教学总结
2015/02/11 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript