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 相关文章推荐
python实现sublime3的less编译插件示例
Apr 27 Python
web.py获取上传文件名的正确方法
Aug 26 Python
Python中生成Epoch的方法
Apr 26 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
Python logging管理不同级别log打印和存储实例
Jan 19 Python
对python3新增的byte类型详解
Dec 04 Python
python绘制已知点的坐标的直线实例
Jul 04 Python
django 取消csrf限制的实例
Mar 13 Python
基于Python中random.sample()的替代方案
May 23 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
Python关于OS文件目录处理的实例分享
May 23 Python
使用opencv-python如何打开USB或者笔记本前置摄像头
Jun 21 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
聊天室php&amp;mysql(二)
2006/10/09 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
JavaScript经典效果集锦
2010/07/06 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
vue-router单页面路由
2017/06/17 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
Python subprocess模块常见用法分析
2018/06/12 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
数据库方面面试题
2012/04/22 面试题
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
医院护士的求职信
2014/01/03 职场文书
装饰活动策划方案
2014/02/11 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
英语教师岗位职责
2014/03/16 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
Python中22个万用公式的小结
2021/07/21 Python
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android