使用pyinstaller将python代码打包为exe可执行文件(GUI)

402 阅读2分钟

首先电脑中必须配置python解释器就无需赘言。这里我用的是python 3.11

1、安装pyinstaller

pip install pyinstaller

如果本地已存在pyinstaller.exe文件,或者打包时出错,可以用下列命令检查更新

pip install --upgrade pyinstaller

2、找到pyinstaller.exe文件的安装位置,如:C:\Users\86178\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts\pyinstaller.exe 如果不知道可以使用以下命令查询

 pip show pyinstaller
 看输出的Location:C:\Users\86178\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages
与exe文件所在位置略有不同,如果该位置不可用,可以在系统中打开该文件位置,并点击返回上级一次,应该可以看到一个Script文件夹,exe文件大概率就在这里边。

3、去到要打包的文件目录,打开cmd。

image.png

#exe之前是pyinstaller的路径信息
常用参数:
    --onefile 打包成一个单文件执行程序
    --onedir: 打包成一个目录,包含可执行文件和依赖项
    --icon <icon>: 指定应用程序的图标文件
    --noconsole: 在 Windows 上生成一个没有控制台窗口的程序(一般该参数在不调式的情况下填写)

如果你想更精细的调整参数或者--icon图标打包不成功,可以试试下面的方案:

image.png 这将生成一个main.spec文件,所有参数都包含在其中。

# -*- mode: python ; coding: utf-8 -*-


a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.datas,
    [],
    name='main', #可以修改打包出来的exe文件的名字
    debug=False, #是否开启debug模式
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=False, #是否开启黑窗口
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=r'C:\Users\86178\Desktop\python\stock\favicon.ico', #自定义图标路径,这里用的绝对路径,记住最前方一定要加上r来表示原始字符串,不然识别不了反斜杠。
)

使用了这种方案,你的打包命令将变成:

image.png

4、打包成功。 经过以上步骤,你的python代码应该已经成功转化为exe可执行文件啦,并且图标也已经是自定义的咯。

image.png

tips:打包出来的可执行文件输出到了dist目录中,图标可能未加载出来,还是原始图标,你可以将文件拖动到桌面或其他文件夹应该就可以显示出来啦。