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中运算符使用时的优先级
May 14 Python
mac 安装python网络请求包requests方法
Jun 13 Python
python绘制圆柱体的方法
Jul 02 Python
解决pyttsx3无法封装的问题
Dec 24 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
Python 解析pymysql模块操作数据库的方法
Feb 18 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
快速一键生成Python爬虫请求头
Mar 04 Python
django注册用邮箱发送验证码的实现
Apr 18 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
基于Zend的Config机制的应用分析
2013/05/02 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
checkbox使用示例
2013/08/23 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
纯javascript版日历控件
2016/11/24 Javascript
layui表格实现代码
2017/05/20 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
python游戏地图最短路径求解
2019/01/16 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
网络体系结构及协议的定义
2014/03/13 面试题
信息专业个人的自我评价
2013/12/27 职场文书
分层教学实施方案
2014/03/19 职场文书
寄语学生的话
2014/04/10 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
毕业证明模板
2015/06/19 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
JavaCV实现照片马赛克效果
2022/01/22 Java/Android
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript