目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用。
在windows下,大小为几十K的源文件打包成exe文件,可能为几十兆,原因是把程序所引用的库文件也一起打包在一起。
如下以windows系统为例,分2个步骤,演示如何使用pyinstaller打包。
第1步:安装pyinstaller
安装pyinstaller之前首先必须有pip,如果还没有安装,请用度娘搜索“python安装pip”,资源丰富,在此不再介绍,使用pip安装pyinstaller的命令如下:
pip install pyinstaller
第2步:打包exe文件
如果是打包一个py文件,可以使用“pyinstaller -F 待打包文件名”进行打包,在命令执行完毕后,会在dist目录下生成一个“待打包文件名.exe”的文件。如果不使用“-F”参数,则会在dist目录下生成一个“待打包文件名”的文件夹,该文件夹下包含“待打包文件.exe”,但是要整个文件夹在一起才能正常工作,因为这个文件夹的功能相当于使用“-F”时的一个“待打包文件.exe”。
使用“F”强制打包参数,有时会导致软件功能运行不正常,仅限于小的范例使用,如果项目有多个py文件,则建议别再使用“F”参数。
如果项目有多个文件,打包时可以把多个文件列出来,中间用空格隔开即可。
如果需要修改默认图标为指定图标,则使用“-i 图标文件名”来实现。
如下为使用多个py文件和图标的打包截图。
pyinstaller的参数见下表,大家可以在需要时参考
参数 | 参数全称 | 参数说明 |
---|---|---|
-F | –onefile | |
-D | –onedir | |
-K | –tk | 在部署时包含 TCL/TK。 |
-a | –ascii | 不包含编码.在支持Unicode的python版本上默认包含所有的编码。 |
-d | –debug | 产生debug版本的可执行文件 |
-w | –windowed,–noconsole | 使用Windows子系统执行.当程序启动的时候不会打开命令行(仅对Windows有效) |
-c | –Nowindowed,–console | 使用控制台子系统执行(默认)(只对Windows有效) pyinstaller -c xxxx.py pyinstaller xxxx.py --console |
-s | –strip | 可执行文件和共享库将run through strip。 注意Cygwin的strip可能使普通的win32 Dll无法使用 |
-X | –upx | 如果有UPX安装(执行Configure.py时检测),则会压缩执行文件(Windows系统中的DLL也会) |
-o DIR | –out=DIR | 指定spec文件的生成目录,如果没有指定,而且当前目录是PyInstaller的根目录,会自动创建一个用于输出(spec和生成的可执行文件)的目录.如果没有指定,而当前目录不是PyInstaller的根目录,则会输出到当前的目录下。 |
-p DIR | –path=DIR | 设置导入路径(和使用PYTHONPATH效果相似)。 可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.也可以使用多个-p参数来设置多个导入路径,让pyinstaller自己去找程序需要的资源 |
-i <FILE.ICO> | –icon=<FILE.ICO> | 将file.ico添加为可执行文件的资源(只对Windows系统有效),改变程序的图标 pyinstaller -i ico路径 xxxxx.py |
–i <FILE.EXE, N> | –icon=<FILE.EXE, N> | |
-v FILE | –version=FILE | 将verfile作为可执行文件的版本资源(只对Windows系统有效) |
-n NAME | –name=NAME |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。