用户68431221
作为Python开发人员,较以往我们的代码发布可能只是将整个模块上传至Git或SVN,使用者通过下载源码并且根据requirements文件安装依赖库,然后才能运行该代码,代码的交付、安装成本较高。
这里我们将 如何对模块进行打包,生产.whl文件,直接可以通过pip install *.whl进行安装,另外,还可以将打好的包上传到官方仓库 PyPI中。
Wheel和Egg都是python的打包格式,根据官网说明,Wheel是发行版Python的新标准并且将要取代.egg,Wheel现在是Python的二进制包的标准格式。
Wheel安装
pip install wheel模块目录结构说明
setup.py
:打包配置文件。- setup.cfg:包含了构建时候的一些默认参数,无可不添加该文件。
- MANIFEST.in:额外需要打包的文件,无可不添加该文件。
- README.md:项目说明文档。
- LICENSE.txt:项目许可说明文件,无可不添加该文件。
- lib:模块源码目录。
目录结构图如下,其中lib目录下是模块源码所在目录:
setup.cfg 如下
MANIFEST.in如下:
setup.py 配置文件如下:
生成whl文件
我们按照上述配置文件目录结构,编写完setup.py文件,接下来可以使用 bdist_wheel 进行打包,打包命令如下:
python setup.py bdist_wheel通过如下打包日志,我们可以看到生成了Mongodb-1.0.0-py2.py3-none-any.whl文件。
执行完成后,原目录结构如下,在dist目录中我们可以看到生成的whl文件:
安装部署
我们可以将打包好的.whl对外发布,使用者可以通过pip直接进行安装部署,如下。
pip install Mongodb-1.0.0-py2.py3-none-any.whl软件测试开发技术栈
这里简单介绍2个Python程序打包工具,分别是pyinstaller和py2exe,对于大多数py脚本来说,都可以轻松打包,支持Windows和Linux,感兴趣的朋友可以尝试一下:
这里为了方便测试,我新建了一个Python脚本,一个基于tkinter的GUI程序,后面就是对这个程序进行打包:
01
pyinstaller
这是一个非常简单的Python程序打包工具,支持Windows和Linux,只需一行命令就可轻松将py脚本打包为可执行程序(exe等),安装的话,直接在cmd窗口输入命令“pip install pyinstaller”即可,接着切换到脚本所在目录,输入命令“pyinstaller -F -w 脚本名称”程序就会自动开始打包过程,-F代表独立成一个可执行程序,-w代表去掉控制台窗口(我这里是GUI程序,所以需要添加这个参数,如果是命令行程序,不要添加这个参数):
以Windows程序为例(Linux类似),成功打包后会在当前目录下生成一个dist子目录,里面就有我们生成的exe程序,直接双击就可运行,缺点就是打包的文件比较大,而且在包的依赖上有问题:
02
py2exe
这也是一个非常不错的Python程序打包工具,目前仅支持Windows,而且限制Python版本为3.3或3.4,安装的话,直接在cmd窗口输入命令“pip install py2exe”即可:
安装完成后,这里需要配置一个setup.py打包文件,后面就是基于这个配置文件进行Python程序打包,简单配置如下,导入py2exe库,然后直接设置需要打包的脚本即可,如果是GUI程序,参数是windows,如果是命令行程序,参数是console,接着在cmd窗口切换到脚本所在目录,运行命令“python setup.py py2exe”就会自动开始打包过程,成功打包后就在当前目录下生成一个exe程序,直接双击就可运行:
至此,我们就完成了Python程序打包。总的来说,pyinstaller和py2exe这2个打包工具都非常简单,只要你熟悉一下使用过程,很快就能掌握的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
小小猿爱嘻嘻
我家用的是溪谷科技的打包工具,别家没用过也不好说,他们家的这款产品很好的解决了H5游戏上架游戏平台问题和二次登录难问题,简单的步骤实现复杂的操作过程,包体小,下载速度很快。强烈推荐溪谷科技。