Python如何将py文件打包成exe

Posted o云淡风轻o

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python如何将py文件打包成exe相关的知识,希望对你有一定的参考价值。

安装pyinstaller

打开cmd窗口,输入pip install pyinstaller,命令行输出successfully表示成功。

 

生成exe文件

一、单个py文件

在py文件目录下,打开cmd窗口,输入pyinstall -F XXX.py,执行成功的话,会在当前目录生成一个dist文件夹,XXX.exe文件在此文件夹下。

添加版本信息

安装好pyinstaller后,我们会得到两个辅助工具,pyi-grab_version和pyi-set_version。

1. 使用pyi-grab_version创建版本信息模板文件,首先找到一个有版本信息的XXX.exe工具,在此目录下打开cmd窗口,输入pyi-grab_version XXX.exe,执行成功后,会在此目录下获得一个file_version_info.txt文件,这个就是我们要的文件版本信息模板文件。

2. 有了模板文件后,我们需要修改里面的内容,换成我们自己想要的版本内容,最好用nopad++打开。

3. 在打包时加入版本信息。

方法一、还没有打包成exe的py文件

pyinstaller -F --version--file file_version_info.txt XXX.py

方法二、已经打包好的exe

pyi-set_version file_version_info.txt XXX.exe

 

二、多个py文件

1、尽量将所有要执行的py文件放在一个大文件夹下(里面允许有多个文件夹)

2、命令行输入pyi-makespec main.py(main.py为Python程序的入口py文件)

3、现在文件夹下生成了一个main.spec文件和两个文件夹

4、编辑main.spec文件,找到a = Analysis(),先修改第一个参数,这里面的列表都必须是py文件

a = Analysis([pin.py],
             pathex=[F:\python_work\pytest\pin],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

 

如果用到了其他的py文件,就在第一个列表里面加入相应py文件的路径,如果是同级目录下,直接写文件名,如果不在同一个文件下,写完整路径。

a = Analysis([pin.py, cursor_control.py],
             pathex=[F:\python_work\pytest\pin],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

 

如果用到了非py文件需要打包,那么找到datas列表,将非py文件的路径与文件夹名写在元组里。

例如:

datas = [(C:\project\test\images,images),(C:\project\test\EventLogs,EventLogs)]

 

datas:

第一个参数是Python中的非py类型文件的路径

第二个参数是非py文件保存此资源的文件夹名称,要和路径中的文件夹名称相同。

以上是关于Python如何将py文件打包成exe的主要内容,如果未能解决你的问题,请参考以下文章

如何将python3.6软件的py文件打包成exe程序

python 学习如何将Python脚本打包成可执行的exe文件#520表白代码

如何在win7 64位系统下用pyinstaller打包python代码成exe

如何在win7 64位系统下用pyinstaller打包python代码成exe

如何将Python打包后的exe还原成.py?

如何将Python打包后的exe还原成.py?