python 制作自定义包并安装到系统目录的方法


Posted in Python onOctober 27, 2018

python 中的包的概念跟c++中的namespace很相似,在大型的工程开发中,多个开发人员很容使用相同的函数名,为了避免相同函数名带来的问题,就引入了包的概念。

在看别人写的程序中经常看到形如“from xx import yy”xx就是包

制作一个本地使用的包

建立一个文件夹并命名为dl,文件夹名"dl"就是我们的包名,在文件夹内部新建一个“__init__.py”(注意init左右两边都是两个底线符号),在文件夹下添加自己的模块即可,代码目录如下,a.py中存放test_a函数,b.py中存放test_b函数

python 制作自定义包并安装到系统目录的方法

在dl同级目录中添加要使用包的测试文件,并测试

测试代码如下:

<code class="language-python">from dl import a,b 
 
a.test_a() 
b.test_b()</code>

可以发现能正常执行包dl中模块a和模块b中的函数(包是可以嵌套的,包中可以再添加包)

_init__.py中可以控制当前包都有哪些模块可以导出,如果__init__.py中什么内容都没有,表示当前包中所有的模块都可以导出,其他模块可以通过“from xx import *”的方式使用该包。

在__init__.py中添加“__all__ = ['a','b']”表示当前包内只有a,b两个模块可以导出

制作并安装包

在包dl同级的目录中创建setup.py

<code class="language-python">from distutils.core import setup 
setup(name="testModule", version="18.0.4", description="test to install module", author="szfhy", py_modules=['dl.a','dl.b', 'dl.network.facenet'])</code>

制作包执行命令 python setup.py build

python 制作自定义包并安装到系统目录的方法

生成压缩包 python setup.py sdist

python 制作自定义包并安装到系统目录的方法

解压缩包,并安装 sudo python setup.py install

进入python终端测试:

python 制作自定义包并安装到系统目录的方法

功能一切正常。大功告成!

以上这篇python 制作自定义包并安装到系统目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django应用程序中如何发送电子邮件详解
Feb 04 Python
django中的HTML控件及参数传递方法
Mar 20 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 Python
Python实现基于socket的udp传输与接收功能详解
Nov 15 Python
wxPython实现列表增删改查功能
Nov 19 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
Python脚本调试工具安装过程
Jan 11 Python
python 写一个水果忍者游戏
Jan 13 Python
使用Django的JsonResponse返回数据的实现
Jan 15 Python
opencv深入浅出了解机器学习和深度学习
Mar 17 Python
Python代码实现双链表
May 25 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 #Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 #Python
用Python实现筛选文件脚本的方法
Oct 27 #Python
基于python指定包的安装路径方法
Oct 27 #Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 #Python
Python利用递归实现文件的复制方法
Oct 27 #Python
python实现本地图片转存并重命名的示例代码
Oct 27 #Python
You might like
一个SQL管理员的web接口
2006/10/09 PHP
默默小谈PHP&amp;MYSQL分页原理及实现
2007/01/02 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
Python实现字典依据value排序
2016/02/24 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
Python用SSH连接到网络设备
2021/02/18 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
什么是封装
2013/03/26 面试题
函授毕业自我鉴定
2014/02/04 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
银行求职信
2014/05/31 职场文书
小学学校评估方案
2014/06/08 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
房产公证书样本
2015/01/23 职场文书
放弃继承权公证书
2015/01/23 职场文书
通知函的格式
2015/04/27 职场文书
爱国主题班会教案
2015/08/14 职场文书
德生BCL3000抢先使用感受和评价
2022/04/07 无线电
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS