最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
pyinstaller打包exe文件的示例
时间:2022-11-14 23:00:36 编辑:袖梨 来源:一聚教程网
本篇算是 python编写windows tomcat守护进程 篇的延续 。之前写的代码没事想要打包成exe文件,可以将python打包成exe的工具主要有py2exe、pyinstaller、cx_freeze 。其中py2exe感觉是最难用,打包最烂的;cx_freeze打包比较简单,但是功能没有另外两个强大,所以个人感觉pyinstaller是最好用的。pyinstaller支持打包压缩、打包成单个文件、增加个性图标、设置版权信息。效果如下:
一、安装
pyinstaller安装比较简单,支持pip 安装,直接使用如下命令即可完成安装:
pip install pyinstaller
不怕麻烦的也可以通过下载源码python setup.py install 进行安装 。
需要注意的是,pyinstaller在windows平台下依赖pywin32模块。在使用pyinstaller前,需要安装好pywin32模块(exe 的包,安装非常简单)。
二、使用
默认安装完成后,pyinstaller程序位于C:Python27Scripts目录下,可以通过执行pyinstaller python_script.py 生成可执行文件 ,生成的可执行文件位于执行所在目录下的dist目录下。其高级参数如下:
–distpath=path_to_executable 指定生成的可执行文件存放的目录,默认存放在dist目录下
–workpath=path_to_work_files 指定编译中临时文件存放的目录,默认存放在build目录下
–clean 清理编译时的临时文件
-F, –onefile 生成单独的exe文件而不是文件夹
-d, –debug 编译为debug模式,有助于运行中获取日志信息
–version-file=version_text_file 为exe文件添加版本信息,版本信息可以通过运行pyi-grab_version加上要获取版本信息的exe文件的路径来生成,生成后的版本信息文件可以按需求修改并作为--version-file的参数添加到要生成的exe文件中去
-i
为exe文件添加图标,可以指定图标路径或者从已存在的exe文件中抽取特定的ID的图标作为要生成的exe文件的图标
另外,还可以通过spec文件来生成可执行文件 。具体命令如下:
pyinstaller specfile
或者
pyi-build specfile
注: spec文件每次通过命令生成时都会存在,可以通过简单的修改增加相应的功能,如加图标,指定版权文件 。
这里以之前写的程序为例,可以通过如下命令生成一个可执行文件
C:Usersthinkpad>cd /d C:UsersthinkpadDesktopmonitor
C:UsersthinkpadDesktopmonitor>C:Python27Scriptspyinstaller.exe -F monitor.py
在monitor增加一个ico图标文件,操作方法如下:
C:UsersthinkpadDesktopmonitor>C:Python27Scriptspyinstaller.exe -i alert.ico -F monitor.py
增加版本信息文件方法如下:
C:UsersthinkpadDesktopmonitor>C:Python27Scriptspyinstaller.exe -i alert.ico --version-file=file_version_info.txt -F monitor.py
版本信息的写法看后面 。
此时的spec文件内容如下:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['monitor.py'],
pathex=['C:\Users\thinkpad\Desktop\monitor'],
binaries=None,
datas=None,
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='monitor',
debug=False,
strip=False,
upx=True,
console=True , version-file=file_version_info.txt , icon='alert.ico')
三、upx压缩
默认生成的python可执行文件有点大,可以通过upx程序进行压缩,upx程序的主页位于:https://upx.github.io/ ,目前windows版的最新upx为upx391w.zip ,下载后,将其中的upx.exe文件放到C:Python27目录下(python可执行程序的安装目录),再次执行的时候,可以跟上--upx进行压缩。默认存在时不指定也会进行压缩,生成exe文件时,在其日志中可以发现如下内容:
1087 INFO: PyInstaller: 3.2
1087 INFO: Python: 2.7.12
1088 INFO: Platform: Windows-7-6.1.7600-SP0
1090 INFO: wrote C:UsersthinkpadDesktopmonitormonitor.spec
1172 INFO: UPX is available.
1174 INFO: Extending PYTHONPATH with paths
['C:\Users\thinkpad\Desktop\monitor',
'C:\Users\thinkpad\Desktop\monitor']
可以看到上面的upx是可用的。通过spec文件也一样,增加upx=True即可。
四、版本信息文件的生成
可以通过grab_version.py先读取一个已经存在的exe文件,获取其版本信息,如下:
C:UsersthinkpadDesktopmonitor>C:Python27Libsite-packagesPyInstallerutilscliutilsgrab_version.py C:WindowsSystem32sc.exe
Version info written to: file_version_info.txt
将file_version_info.txt放到对应的目录,并将内部的信息修改后,可以按步骤2中的方法,生成带有版权信息的可执行文件。
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21