Python代码打包exe

方案一:集成pyinstaller和nuitka的桌面软件

老规矩下载链接先奉上:密码:i7jh

  1. 这个软件是由b站作者创猿er开发的,软件集成了pyinstaller和nuitka,可以一键打包成exe,还可以可以选择保留.spec文件,进行高级的定制化操作,比如导入一些库的核心文件,软件的界面如下图所示:

  1. 更多的功能可以去作者写的文档,传送门

方案二:auto-py-to-exe

  1. 安装auto-py-to-exe
1
pip install auto-py-to-exe
  1. 安装完成后,在命令行输入auto-py-to-exe,会弹出一个图形化界面,如下图所示:

  1. auto-py-to-exe的界面已经支持中文,非常友好,在窗口的右上角有一个按钮可以切换语言,点击按钮后会弹出一个窗口,选择简体中文即可。

  2. 这里我介绍一下附加文件的使用,附加文件可以将一些文件打包到exe中,比如一些图片,音频,视频等,这样就不用将这些文件和exe文件放在同一个目录下了,这样就可以将exe文件单独放在一个目录下,这样就不会显得那么乱了,具体操作方法是先判断打包文件是文件夹还是单个文件。再找到要打包文件的位置,就可以了

特殊情况处理办法

我打包的时候经常会出现缺少核心库文件的情况,我的解决办法是,使用第一种打包方案,再打包时我会保留.spec文件,再这个文件里面进行修改参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    # -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['原神抢码器.py'],
pathex=[],
binaries=[
(r'C:\Users\33323\AppData\Local\Programs\Python\Python310\Lib\site-packages\pyzbar\libzbar-64.dll', 'pyzbar'),
(r'C:\Users\33323\AppData\Local\Programs\Python\Python310\Lib\site-packages\pyzbar\libiconv.dll', 'pyzbar')
], # 这里是核心库文件的位置
datas=[], # 这里是附加文件的位置
hiddenimports=[], # 这里是隐藏导入的库
hookspath=[], # 这里是hook文件的位置
hooksconfig={}, # 这里是hook文件的配置
runtime_hooks=[], # 这里是运行时hook文件的位置
excludes=[], # 这里是排除的库
win_no_prefer_redirects=False, # 这里是win_no_prefer_redirects
win_private_assemblies=False, # 这里是win_private_assemblies
cipher=block_cipher, # 这里是加密方式
noarchive=False, # 这里是noarchive
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) # 这里是pyz

exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
[],
icon='原图_200x200.ico', # 这里是图标文件
name='原神抢码器', # 这里是exe文件名
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)