Python打包分发
文章目录
- Python打包分发
- 1.包管理
- 2.打包的主要工具
- 3.使用setup.py打包
- 命令行操作打包
- 查询命令帮助
- 1.build命令,编译
- 2.install命令,安装
- 3.sdist命令
- 4.bdist命令
- 5.wheel包
Python打包分发
1.包管理
Python的模块或者源文件直接可以复制到目标项目目录中,就可以导入使用了。但是为了更多项目调用使用,或者共享给别人,就需要打包,或发布到网络,以便供人使用。目的也是为了复用。
- Pypi(Python Package Index),公共的模块存储中心,https://pypi.python.org/pypi
2.打包的主要工具
- distutils
- 官方库distutils,使用安装脚本setup.py 来构建、安装包。
- 从1998年就是标准库的一部分,直到2000年停止开发。
- setuptools
- 它是替代distutils的增强版工具集,包含easy_install工具,使用ez_setup.py文件。支持egg格式的构建和安装。 提供查询、下载、安装、构建、发布、管理等包管理功能。
- setuptools是包管理的核心模块。后来,setuptools开发缓慢了,出现基于setuptools的distribute来替代setuptools。2013年,这两个项目重新合 并,distribute被废弃,setuptools依然是Python安装打包的标准方式。
- pip
- pip目前包管理的事实标准。
- 构建在setuptools之上,替代easy_install的。同样提供丰富的包管理功能。
- Python3.4之前,需要单独安装,从Python3.4开始直接包含在安装文件中。
- wheel
- wheel格式定义在PEP427中。wheel文件中不包含.pyc文件。
- 提供 bdist_wheel 作为 setuptools 的扩展命令,这个命令可以用来生成新打包格式 wheel。
- pip 从1.4版本开始 提供了一个 wheel 子命令来安装 wheel 包。当然,需要先安装 wheel 模块。 它可以让Python库以二进制形式安装,而不需要在本地编译。
3.使用setup.py打包
setup.py创建一个源代码分发包的例子,参照例子 https://docs.python.org/3.5/distutils/setupscript.html。 可以在帮助文档chm上搜索索引setup,点击上面的Distributing Python Modules (Legacy version) ,然后选 择 Writing the Setup Script
包结构如下:
在项目根目录,构建一个setup.py文件。setup.py文件内容如下:
from distutils.core import setup#导入setup函數
setup(name="m", #名称version="0.1.0", #版本author="xdd", #作者author_email="wwww.xdd@xdd.com", #作者邮箱url="https://www.xdd.com/", #包的主页,可以不写packages=["m","m.m2","m.m2.m21"] #打包列表)
注意:
- packages是一个列表,记录需要打包的包名,在打包时,只会构建记录在packages中的包,和包内的模块。如果包中包含其他包,没有记录在列表中,那么该包将不会出现在打包后的包中。
- 如果
packages = ["m"]
那么打包只会构建m文件夹下的*.py文件,不会添加其他多余文件和子包。
setup()常用带参数:
- name #名字
- version #版本号
- package=[] #打包列表
- description #描述信息
- author #作者
- author_email #作者邮件
- url #包的主页,可以不写
命令行操作打包
- 创建好setup.py文件后,想要打包,需要在命令行中操作,进入控制台,切换到项目的根目录。
查询命令帮助
setup.py --help [cmd1 cmd2 ...]
#查看setup命令的使用帮助
例如:python setup.py --help-commands
#看setup命令的帮助文档python setup.py cmd --help
#查看setup命令的帮助文档
1.build命令,编译
语法:
python setup.py build
- 1.执行结果如下:
D:\MyPythonUse\UserPython2>python setup.py build
running build
running build_py
creating build
creating build\lib
creating build\lib\m
copying m\m1.py -> build\lib\m
copying m\__init__.py -> build\lib\m
creating build\lib\m\m2
copying m\m2\m22.py -> build\lib\m\m2
copying m\m2\__init__.py -> build\lib\m\m2
creating build\lib\m\m2\m21
copying m\m2\m21\__init__.py -> build\lib\m\m2\m21D:\MyPythonUse\UserPython2>
2.会在当前位置创建一个build目录,build目录中会创建一个lib子目录,lib下就是模块m的目录了。结构如下:
3.build得到的文件,直接拷贝到其他姓名就可以用。
2.install命令,安装
在build后可以install,直接运行
python setup.py install
如果没有build,会先build编译,然后安装。
安装后会出现在python环境中的site-packages文件夹中,如下图的m包安装后
3.sdist命令
$python setup.py sdist
创建原码的分发包。
参数一个dlist目录。里面生成一个带版本号的压缩包。
在其他地方解压缩这个文件,里面有setup.py
,就可以使用 $ python setup.py install
安装了, 也可以 $ pip install m-0.1.0.zip
直接使用pip安装这个压缩包。
4.bdist命令
二进制分发包,或称作安装程序。它可以生成目标操作系统的安装程序。
制作windows下的安装包
$ python setup.py bdist_wininst
$ python setup.py bdist_msi
$ python setup.py bdist --format=msirpm包
$ python setup.py bdist_rpm
$ python setup.py bdist --format=rpm压缩文件
$ python setup.py bdist --format=zip
$ python setup.py bdist --format=gztar
可以把自己写好的模块发布到公共的Pypi上,也可以搭建Pypi私服,供企业内部使用。
Pypi里面的模块没有太好的审核机制,不保证安全,请慎重使用。
5.wheel包
安装wheel依赖
$ pip install wheel
wheel是setuptools命令的扩展,所有需要使用setuptools中的setup函数
setup.py文件修改后如下:
# from distutils.core import setup
from setuptools import setup
#导入setup函數
setup(name="m", #名称version="0.1.0", #版本author="xdd", #作者author_email="wwww.xdd@xdd.com", #作者邮箱url="https://www.xdd.com/", #包的主页,可以不写packages=["m","m.m2","m.m2.m21"] #打包列表)
- 将包打包成egg格式
$python setup.py bdist_egg
- 将包打包成whl格式
$python setup.py bdist_wheel
Python打包分发相关推荐
- Python打包分发工具setuptools简介
Python打包分发工具setuptools 通过这个工具,可以打包安装插件,并且还可以发布到PyPI上面,具体参考: 1.http://python.jobbole.com/87240/ 2.htt ...
- python打包分发工具:setuptools
你是否也想写一个python库,想向社会开源或者企业内部使用,想让别人通过简单的命令pip install 安装你的库.那么setuptools绝对是最好用的python打包与分发工具. setupt ...
- python打包和添加数据文件_python库打包分发setup.py编写指南
python库打包分发setup.py编写指南 python之所以强大,在于有许许多多的人贡献自己的力量,他们将自己开发的项目打包上传至pypi,这使得python社区有取之不尽用之不竭的第三方库.工 ...
- Setuptools(Python打包工具)
目录 前言 一.安装 二.源码包介绍 2-1.源码包sdist 2-1-1.打包成源码包sdist 2-1-2.安装源码包 2-2.二进制包bdist 2-2-1.打包成源码包bdist 2-2-2. ...
- Python打包发布
python打包分发 ================== 打包工具:setuptools,wheel ------------------ ###操作顺序: ####1. 项目配置准备,主要是在项目 ...
- python 查看当前目录_「Python」打包分发工具setuptools学习
❝ setuptools是python标准的打包分发工具,它可以将我们编写的python项目打包安装,这样其他同事就可以像调用标准库或python第三方库那样直接使用:也可以将项目上传到Pypi供更多 ...
- Python 库打包分发(setup.py 编写)
Python 有非常丰富的第三方库可以使用,很多开发者会向 pypi 上提交自己的 Python 包.要想向 pypi 包仓库提交自己开发的包,首先要将自己的代码打包,才能上传分发. distutil ...
- python文件分发_python 写一个文件分发小程序
一.概述 该小程序实现从源端到目标端的文件一键拷贝,源端和目标段都在一台电脑上面,只是目录不同而已 二.参数文件说明 1. settings.txt的说明 a. 通过配置settings.txt,填源 ...
- python打包工具报错_Python打包发布神器—Pyinstaller
一前言 在windows平台学习python的过程中,你肯定会遇到需要把.py脚本打包成.exe的情形,如此,至少有两方面的好处:第一,你的代码保密性更好,其他人不能直接看到python代码:第二,打 ...
最新文章
- 代码整洁之道----读书笔记
- Spring学习笔记--spring+mybatis集成
- HTTP协议超级详解
- 【Leetcode】二分法左侧边界右侧边界模板
- [PHP] 现代化PHP之路:composer的镜像站设置
- php代码时间控制,PHP 网页过期时间的控制代码
- pycharm git工具与coding.net结合
- Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java 版本
- 前端 html h5 移动端 手机端 仿ios左滑删除效果
- Oracle数据库的四款工具软件
- 数电第二版 潘松 陈龙 第一章 答案
- AI产品经理必懂的硬知识(一):应用领域篇
- excel 置信区间 计算_正态分布置信区间Excel计算公式.ppt
- ping 127.0.0.1和ping本地ip、ping网关、ping远程网站分别测试什么
- 闲人闲谈PS之三十——新收入准则中的合同资产和合同负债
- 基于centos8部署nextcloud+onlyoffice----2021-07-16
- winform制作音乐播放器
- 你明明是我师父,却偏要做我女朋友
- Mac无法找到摄像头问题解决
- 数字化营销,为何网站如此重要?
热门文章
- 十大经典预测算法(八)---adboost
- K8s跟Docker的关系
- 时序竟态条件分析 sigsuspend函数 Linu系统编程
- uni-app 实现轮播图(完整版)
- JS中~偏移量设定方式与案例分析
- java8 优化嵌套循环
- Android usb驱动模块 g_android.ko rmmod issues
- python 每天发一次通知_Python开发企业微信机器人每天定时发消息实例
- 种太阳五联益生菌教你如何正确给孩子吃益生菌
- android oncreate添加代码出错',android – requestFeature()必须在super.onCreate添加内容错误之前调用...