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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
实例说明Python中比较运算符的使用
May 13 Python
Python中Django框架下的staticfiles使用简介
May 30 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
python 编写简单网页服务器的实例
Jun 01 Python
python顺序的读取文件夹下名称有序的文件方法
Jul 11 Python
Python文件如何引入?详解引入Python文件步骤
Dec 10 Python
Python中format()格式输出全解
Apr 12 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
scrapy处理python爬虫调度详解
Nov 23 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 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
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
PHP数据类型的总结分析
2013/06/13 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
js实现碰撞检测
2021/01/29 Javascript
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
Python中字符串List按照长度排序
2019/07/01 Python
Python 变量的创建过程详解
2019/09/02 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
计算机专业毕业生自荐书
2014/06/02 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
信访维稳承诺书
2015/05/04 职场文书
美容院管理规章制度
2015/08/05 职场文书
小学生运动会广播
2015/08/19 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis