简单了解如何封装自己的Python包


Posted in Python onJuly 08, 2020

将自己的程序打包为whl/tar.gz文件

有时候自己写了一个开发基本类,我们把这个类打包为whl或者tar.gz文件,这样的话同事也可以使用自己开发的基本类了

安装setuptools

pip install setuptools

编写setup.py及__init__.py文件(init.py内容可以为空)

注意目录结构

packages/
 __init__.py
 自己的文件.py
setup.py
Readme.txt

setup.py文件内容

from setuptools import setup
setup(name='dingding-py',
   version='0.0.2',
   description='this is a dingdingbot packages',
   author='Jruing',
   author_email='1099301992@qq.com',
   packages=['Qingolddriver']

   )

除了上面示例中的几个参数以外还有其他的

  • name : 打包后包的文件名
  • version : 版本号
  • author : 作者
  • author_email : 作者的邮箱
  • py_modules : 要打包的.py文件
  • packages: 打包的python文件夹
  • include_package_data : 项目里会有一些非py文件,比如html和js等,这时候就要靠include_package_data 和 package_data 来指定了。package_data:一般写成{‘your_package_name': [“files”]}, include_package_data还没完,还需要修改MANIFEST.in文件.MANIFEST.in文件的语法为: include xxx/xxx/xxx/.ini/(所有以.ini结尾的文件,也可以直接指定文件名)
  • license : 支持的开源协议
  • description : 对项目简短的一个形容
  • ext_modules : 是一个包含Extension实例的列表,Extension的定义也有一些参数。
  • ext_package : 定义extension的相对路径
  • requires : 定义依赖哪些模块
  • provides : 定义可以为哪些模块提供依赖
  • data_files :指定其他的一些文件(如配置文件),规定了哪些文件被安装到哪些目录中。如果目录名是相对路径,则是相对于sys.prefix或sys.exec_prefix的路径。如果没有提供模板,会被添加到MANIFEST文件中。

打包

进入到setup.py所在目录执行以下命令

python setup.py bdist_wheel #打包为whl文件
python setup.py sdist #打包为tar.gz文件

打包后在dist目录下就可以找到打包后的文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 创建子进程模块subprocess详解
Apr 08 Python
Python中用sleep()方法操作时间的教程
May 22 Python
浅谈python抛出异常、自定义异常, 传递异常
Jun 20 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
python2.7到3.x迁移指南
Feb 01 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
Python调用graphviz绘制结构化图形网络示例
Nov 22 Python
python实现智能语音天气预报
Dec 02 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 Python
导致python中import错误的原因是什么
Jul 01 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
python语言实现贪吃蛇游戏
Nov 13 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 #Python
基于python实现可视化生成二维码工具
Jul 08 #Python
如何使用Cython对python代码进行加密
Jul 08 #Python
python中的错误如何查看
Jul 08 #Python
获取python运行输出的数据并解析存为dataFrame实例
Jul 07 #Python
利用keras使用神经网络预测销量操作
Jul 07 #Python
Python Mock模块原理及使用方法详解
Jul 07 #Python
You might like
用PHP开发GUI
2006/10/09 PHP
PHP 强制下载文件代码
2010/10/24 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
python+logging+yaml实现日志分割
2019/07/22 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Python如何实现线程间通信
2020/07/30 Python
详解Python 函数参数的拆解
2020/09/02 Python
应届生英语教师求职信
2013/11/05 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
环保小标语
2014/06/13 职场文书
六一亲子活动总结
2014/07/01 职场文书
会计个人实习计划书
2014/08/15 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
自我检讨书范文
2015/01/28 职场文书
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers