Python工程打包成EXE

本文章内容的视频版本:

YouTube video

为什么这么做?

最大的好处,就是可以直接一个压缩包分发给别人,不需要再安装Python,点击就能运行。
– 有自己的icon
– 一定程度的保护代码

通过将Python项目打包成可执行文件(EXE),我们可以方便地分享程序,并且无需担心用户的Python环境配置。此外,自定义图标和代码保护功能也是打包的一大亮点。

Python工程打包成EXE

用什么打包?

将Python工程打包成EXE文件,可以使用以下几种方式:

1. PyInstaller

安装:

bash
pip install pyinstaller

打包:

bash
pyinstaller --onefile your_script.py

这将生成一个单独的可执行文件 your_script.exe,位于 dist 目录中。

常用选项:

  • –onefile: 生成单个可执行文件
  • –windowed或–noconsole: 打包为窗口应用程序(不显示控制台)

2. cx_Freeze

安装:

bash
pip install cx_Freeze

编写setup.py:

创建一个 setup.py 文件,内容如下:

python
from cx_Freeze import setup, Executable

setup( name = "your_program_name", version = "0.1", description = "Your program description", executables = [Executable("your_script.py")] )

打包:

bash
python setup.py build

生成的EXE文件位于 build 目录中。

3. Py2exe

安装:

bash
pip install py2exe

编写 setup.py:

创建一个 setup.py 文件,内容如下:

python
from distutils.core import setup
import py2exe
setup(console=['your_script.py'])

打包:

bash
python setup.py py2exe

生成的EXE文件位于 dist 目录中。

4. Nuitka

Nuitka不仅可以将Python代码编译为C++代码,还可以生成可执行文件。

安装:

bash
pip install nuitka

编译:

bash
nuitka --follow-imports --standalone your_script.py

生成的EXE文件位于当前目录的 your_script.dist 文件夹中。

总结

选择哪种工具可以根据具体需求决定:

  • PyInstaller:常用且支持多种选项,适合大部分应用。
  • cx_Freeze:灵活性高,适合复杂项目。
  • Py2exe:适合简单项目,但仅支持Windows。
  • Nuitka:适合需要性能优化的项目。

每种方法都有其优势,可以根据项目的需求和个人偏好进行选择。

如何打包?

  1. 安装PyInstaller:
  2. bash
    pip install pyinstaller

  3. 使用PyInstaller打包:
  4. bash
    pyinstaller your_script.py

    为什么有错误,怎么办?

    1. Gradio UI需要手动添加Gradio模块:

    找到对应的spec文件,添加:

    python
    module_collection_mode={'gradio':'py',}

    2. 参数调用的错误:

    python
    def parse_args():
        command_line_args = SimpleNamespace(
            llama_checkpoint_path="checkpoints/fish-speech-1.2",
            decoder_checkpoint_path="checkpoints/4x1024-42hz-generator.pth",
            decoder_config_name="firefly_gan_vq",
            device="cuda",
            half=False,
            compile=False,
            max_gradio_length=0,
        ) 
    return command_line_args
    

    3. 缺少资源:

    确保所有必要的资源文件都包含在打包过程中,并且路径正确。如果遇到缺少资源的错误,检查资源文件是否在项目的正确位置,以及打包工具的配置是否正确。

    支持牛哥

    送人玫瑰,手有余香,可以通过下面的方式支持牛哥

    1. 开通 Youtube 会员:

    最简单直接的方式,一杯咖啡的开销,成为牛哥背后的男(女)人 Python工程打包成EXE

    开通方法:
    点击任意牛哥视频描述区的加入按钮 或者 点击牛哥描述区的连接:

    Python工程打包成EXE

    大陆地区可以使用日本或者台湾区的梯子,否则可能看不到加入按钮

    2. 为爱发个电:

    Python工程打包成EXE

    爱发电平台: https://afdian.com/a/niugee

站内快搜



联系牛哥

加入牛哥的 TG 群组一起交流

=>>Telegram群组(点我加入)

有特殊情况的,需要单独沟通,可以添加牛哥的 微信 或者 Telegram