最简单的pyinstaller打包exe方式小结

Written by

in

文章目录
  • 在实际工作过程中,python项目文件完成开发后,存在打包成exe使用的需求,而如何正确并且快捷的实现打包尤为重要,目前python打包的方式很多,包括py2exe,pyinstaller,cx_Freeze,nuitka以及Pyarmor,本次只针对pyinstaller进行说明。 PyInstaller是一个用于将Python应用程序打包成独立可执行文件的库。它可以将Python代码及其所有依赖项(包括第三方库和资源文件)打包到一个单独的可执行文件中,使得应用程序可以在没有Python解释器环境的系统上独立运行。
  • 以下是PyInstaller的一些主要特点和功能: 跨平台支持:PyInstaller可以在主流操作系统(如Windows、macOS和Linux)上运行,并生成相应平台的可执行文件 自动化打包:PyInstaller会分析Python代码及其依赖项,自动检测所需的模块和资源文件,并将它们打包到一个可执行文件中 独立可执行文件:打包后的可执行文件包含了应用程序的所有依赖项,不需要用户单独安装Python解释器或相关库 支持多种打包选项:PyInstaller提供了多种打包选项,可以定制可执行文件的行为,如设置命令行参数、图标、文件路径等 支持多种GUI框架:PyInstaller支持常见的GUI框架,如Tkinter、PyQt、wxPython等,可以将基于这些框架开发的应用程序打包为独立可执行文件
  • 以下是spec配置文件,还可以直接按照文件内容提示填入所需文件名、打包名称等,从而更为简单的使用pyinstaller XXX.spec完成打包。 # -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis( [‘PY主文件’, ‘PY1辅助文件’, ‘PY2辅助文件’, ‘PY3辅助文件’,], pathex=[‘多个PY文件所在路径’], binaries=[],# 程序调用外部pyd、dll文件(二进制文件路径)以数组形式传入 datas=[],# 存放的资源文件 hiddenimports=[],# pyinstaller解析模块时可能会遗漏某些模块 hookspath=[], hooksconfig={}, 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) exe = EXE( pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], 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, )
  • 对提到的五种打包库进行以下简单介绍: py2exe: 跨平台支持有限,主要用于将Python脚本打包为Windows可执行文件 简单易用,配置相对简单,适合简单的打包需求 可以将Python解释器和依赖项打包到单个可执行文件中 PyInstaller: 跨平台支持广泛,可以生成Windows、macOS和Linux等系统上的可执行文件 自动化打包,能够自动检测和包含所有依赖项 支持多种GUI框架,如Tkinter、PyQt、wxPython等 可以生成独立的可执行文件,无需安装Python解释器 cx_Freeze: 跨平台支持,可以生成Windows、macOS和Linux等系统上的可执行文件 配置灵活,可以根据需求进行定制 支持多种GUI框架和第三方库 生成的可执行文件较小,具有较小的内存占用 Nuitka: 将Python代码编译为机器码,提高执行效率 生成的可执行文件性能较高,执行速度比解释执行的Python代码更快 与许多第三方库和C扩展兼容 跨平台支持广泛,可以生成Windows、macOS和Linux等系统上的可执行文件 Pyarmor: 用于保护Python代码,提供加密和混淆功能,以防止未经授权的访问和复制 支持对Python脚本进行防调试和防反向工程处理 配置简单,可以与其他打包工具结合使用 跨平台支持,可以在不同系统上使用这些工具在Python打包和分发方面都有其独特的特点和适用场景,选择合适的工具取决于我们的具体需求,例如目标平台、代码保护需求、对第三方库的支持程度以及打包后的可执行文件的性能要求等。 到此这篇关于最简单的pyinstaller打包exe方式小结的文章就介绍到这了,更多相关pyinstaller打包exe内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!  您可能感兴趣的文章: 使用pyinstaller打包.exe文件的详细教程 Pyinstaller将py打包成exe的实例 用PyInstaller把Python代码打包成单个独立的exe可执行文件 如何使用pyinstaller打包32位的exe程序 解决pyinstaller打包发布后的exe文件打开控制台闪退的问题 python pyinstaller打包exe报错的解决方法 利用pyinstaller打包exe文件的基本教程 Pyinstaller打包.py生成.exe的方法和报错总结 pyinstaller打包程序exe踩过的坑 利用pyinstaller将py文件打包为exe的方法
  • 目录
    • 1.背景
    • 2.特点
    • 3.打包方式
      • 3.1单文件打包法
      • 3.2多文件打包法
      • 3.3配置文件打包法(最为简单)
    • 4.SPEC配置文件
      • 5.拓展

        1. 在实际工作过程中,python项目文件完成开发后,存在打包成exe使用的需求,而如何正确并且快捷的实现打包尤为重要,目前python打包的方式很多,包括py2exe,pyinstaller,cx_Freeze,nuitka以及Pyarmor,本次只针对pyinstaller进行说明。
        2. PyInstaller是一个用于将Python应用程序打包成独立可执行文件的库。它可以将Python代码及其所有依赖项(包括第三方库和资源文件)打包到一个单独的可执行文件中,使得应用程序可以在没有Python解释器环境的系统上独立运行。

        以下是PyInstaller的一些主要特点和功能:

        • 跨平台支持:PyInstaller可以在主流操作系统(如Windows、macOS和Linux)上运行,并生成相应平台的可执行文件
        • 自动化打包:PyInstaller会分析Python代码及其依赖项,自动检测所需的模块和资源文件,并将它们打包到一个可执行文件中
        • 独立可执行文件:打包后的可执行文件包含了应用程序的所有依赖项,不需要用户单独安装Python解释器或相关库
        • 支持多种打包选项:PyInstaller提供了多种打包选项,可以定制可执行文件的行为,如设置命令行参数、图标、文件路径等
        • 支持多种GUI框架:PyInstaller支持常见的GUI框架,如Tkinter、PyQt、wxPython等,可以将基于这些框架开发的应用程序打包为独立可执行文件

        单个文件内容,直接使用pyinstaller命令打包,打包后自动生成exe运行文件使用。

        # 1.执行命令
        pyinstaller -F xxx.py
        
        # 2.去生成的dist文件夹找xxx.exe运行
        
        # 3.运行成功,xxx.exe则为可执行文件,删除其它文件
        

        当存在多个文件时,需要指定好程序入口文件,使用pyinstall -D后,生成spec文件,修改spec文件,再使用pyinstaller -F打包。

        # 1.执行命令,xxx.py为程序入口文件
        pyinstall -D xxx.py 
        
        # 2.删除生成的bulid和dist文件夹,仅保留xxx.spec文件
        
        # 3.修改xxx.spec文件,详见2.2.1
        
        # 4.执行命令
        pyinstaller -F xxx.spec
        
        # 5.去dist文件夹下找xxx.exe文件
        
        # 6.运行成功,删除临时文件目录build;dist目录为打包的结果,可执行文件和其它程序运行的关联文件都在这个目录下
        

        此种方法最为直接简单,先生成spec配置文件,然后修改文件后,直接使用pyinstaller命令打包。

        #第一步生成配置文件
        pyi-makespec XXX.py   获取spec配置
        
        #第二步修改配置文件
        
        #第三步打包命令
        pyinstaller  XXX.spec
        

        打包过程如图:

        打包成功结果如图:

        以下是spec配置文件,还可以直接按照文件内容提示填入所需文件名、打包名称等,从而更为简单的使用pyinstaller XXX.spec完成打包。

        # -*- mode: python ; coding: utf-8 -*-
        block_cipher = None
        a = Analysis(
            ['PY主文件',
            'PY1辅助文件',
            'PY2辅助文件',
            'PY3辅助文件',],
            pathex=['多个PY文件所在路径'],
            binaries=[],# 程序调用外部pyd、dll文件(二进制文件路径)以数组形式传入
            datas=[],# 存放的资源文件
            hiddenimports=[],# pyinstaller解析模块时可能会遗漏某些模块
            hookspath=[],
            hooksconfig={},
            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)
        exe = EXE(
            pyz,
            a.scripts,
            a.binaries,
            a.zipfiles,
            a.datas,
            [],
            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,
        )
        

        对提到的五种打包库进行以下简单介绍:

        1. py2exe:
          • 跨平台支持有限,主要用于将Python脚本打包为Windows可执行文件
          • 简单易用,配置相对简单,适合简单的打包需求
          • 可以将Python解释器和依赖项打包到单个可执行文件中
        2. PyInstaller:
          • 跨平台支持广泛,可以生成Windows、macOS和Linux等系统上的可执行文件
          • 自动化打包,能够自动检测和包含所有依赖项
          • 支持多种GUI框架,如Tkinter、PyQt、wxPython等
          • 可以生成独立的可执行文件,无需安装Python解释器
        3. cx_Freeze:
          • 跨平台支持,可以生成Windows、macOS和Linux等系统上的可执行文件
          • 配置灵活,可以根据需求进行定制
          • 支持多种GUI框架和第三方库
          • 生成的可执行文件较小,具有较小的内存占用
        4. Nuitka:
          • 将Python代码编译为机器码,提高执行效率
          • 生成的可执行文件性能较高,执行速度比解释执行的Python代码更快
          • 与许多第三方库和C扩展兼容
          • 跨平台支持广泛,可以生成Windows、macOS和Linux等系统上的可执行文件
        5. Pyarmor:
          • 用于保护Python代码,提供加密和混淆功能,以防止未经授权的访问和复制
          • 支持对Python脚本进行防调试和防反向工程处理
          • 配置简单,可以与其他打包工具结合使用
          • 跨平台支持,可以在不同系统上使用
            这些工具在Python打包和分发方面都有其独特的特点和适用场景,选择合适的工具取决于我们的具体需求,例如目标平台、代码保护需求、对第三方库的支持程度以及打包后的可执行文件的性能要求等。

        到此这篇关于最简单的pyinstaller打包exe方式小结的文章就介绍到这了,更多相关pyinstaller打包exe内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 

        您可能感兴趣的文章:

        • 使用pyinstaller打包.exe文件的详细教程
        • Pyinstaller将py打包成exe的实例
        • 用PyInstaller把Python代码打包成单个独立的exe可执行文件
        • 如何使用pyinstaller打包32位的exe程序
        • 解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
        • python pyinstaller打包exe报错的解决方法
        • 利用pyinstaller打包exe文件的基本教程
        • Pyinstaller打包.py生成.exe的方法和报错总结
        • pyinstaller打包程序exe踩过的坑
        • 利用pyinstaller将py文件打包为exe的方法

        站内搜索