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中对list去重的多种方法
Sep 18 Python
在Python程序中操作MySQL的基本方法
Jul 29 Python
python下setuptools的安装详解及No module named setuptools的解决方法
Jul 06 Python
python 2.7.14安装图文教程
Apr 08 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
python实现抖音视频批量下载
Jun 20 Python
python简单鼠标自动点击某区域的实例
Jun 25 Python
python实现图片上添加图片
Nov 26 Python
在Python 的线程中运行协程的方法
Feb 24 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
Django数据统计功能count()的使用
Nov 30 Python
Python测试框架pytest高阶用法全面详解
Jun 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
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
浅谈PHP的反射API
2017/02/26 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
JavaScript 的继承
2011/10/01 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
深入解析koa之异步回调处理
2019/06/17 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
Python pandas库中的isnull()详解
2019/12/26 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
统计每一学生的平均成绩
2014/06/06 面试题
物业管理大学生个人的自我评价
2013/10/10 职场文书
保护野生动物倡议书
2014/05/16 职场文书
运动会口号16字
2014/06/07 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
建设工程授权委托书
2014/09/22 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
三人合伙协议书范本
2014/10/29 职场文书
企业宣传语大全
2015/07/13 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
Python 中的Sympy详细使用
2021/08/07 Python
Java 超详细讲解hashCode方法
2022/04/07 Java/Android