不乱于心,不困于情。
不畏将来,不念过往。如此,安好。

Python pyinstaller 项目打包

目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用。

在windows下,大小为几十K的源文件打包成exe文件,可能为几十M,原因是把程序所引用的库文件也一起打包在一起。

如下以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参数打包成一个exe文件的操作截图如下:

使用“F”强制打包参数,有时会导致软件功能运行不正常,仅限于小的范例使用,如果项目有多个py文件,则建议别再使用“F”参数。

如果项目有多个文件,打包时可以把多个文件列出来,中间用空格隔开即可。

如果需要修改默认图标为指定图标,则使用“-i  图标文件名”来实现。

 

pyinstaller的参数见下表,大家可以在需要时参考。

参数 参数全称 参数说明
-F –onefile 打包成单个可执行文件,如果你的代码都写在一个.py文件,则可以使用,如果是多个.py文件,建议不要使用。
-D –onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,该方式代码较易于维护。
-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>

将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效)

-v FILE –version=FILE 将verfile作为可执行文件的版本资源(只对Windows系统有效)
-n NAME –name=NAME

可选的项目(产生的spec的)名字.如果省略,第一个脚本的主文件名将作为spec的名字

赞(0)
未经允许不得转载:seo优化_前端开发_渗透技术 » Python pyinstaller 项目打包