You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用auto-py-to-exe、pyinstaller、nuitka将.py转为.exe并缩减体积?

将Python脚本转换为轻量.exe文件的替代方案

下面是几个避开PyInstaller、auto-py-to-exe、Nuitka(或优化Nuitka)的轻量转换方案,兼顾体积与性能:

方案1:Cython转C再编译为原生exe

Cython可将Python代码编译为C语言,再通过C编译器生成体积极小的原生exe,同时能显著提升运行速度。

  • 前置依赖:安装Cython pip install cython,以及C编译器(推荐MinGW-w64)
  • 编写setup.py编译脚本:
from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules=cythonize("your_script.py", compiler_directives={'language_level': "3"}),
)
  • 生成C代码:执行 python setup.py build_ext --inplace,会得到对应的.c文件
  • 编译为exe:使用MinGW执行命令(替换XX为你的Python版本号,如3.10对应310)
gcc -o your_script.exe your_script.c -I"C:\PythonXX\include" -L"C:\PythonXX\libs" -lpythonXX
  • 注意:需将Python运行时dll(pythonXX.dll)与exe放在同一目录;若想完全无依赖,需静态编译Python源码(步骤稍复杂)

方案2:Py2exe轻量化打包

Py2exe的默认输出体积远小于PyInstaller,通过配置可进一步精简:

  • 安装Py2exe:pip install py2exe
  • 编写setup.py:
from distutils.core import setup
import py2exe

setup(
    console=["your_script.py"],  # 若为GUI程序则用windows=["your_script.py"]
    options={
        "py2exe": {
            "bundle_files": 1,  # 合并为单个exe
            "compressed": True,  # 开启压缩
            "optimize": 2,  # 代码全优化
            "excludes": ["tkinter", "unittest", "email", "ssl"],  # 排除未使用的标准库模块
            "dll_excludes": ["w9xpopen.exe", "msvcr100.dll"]  # 排除冗余系统dll
        }
    },
    zipfile=None  # 将库文件合并到exe,不生成单独zip
)
  • 执行打包:python setup.py py2exe,生成的exe在dist目录下

方案3:Nuitka极致优化配置(可选尝试)

若之前仅用了Nuitka默认配置,可通过以下参数大幅缩小体积并提升速度:

  • 编译命令:
python -m nuitka --standalone --onefile --optimize=3 --plugin-enable=upx --remove-output --your_script.py
  • 参数说明:--optimize=3开启最高级代码优化,--plugin-enable=upx用UPX压缩最终exe,--onefile打包为单文件,能有效降低体积并提升运行效率

内容的提问来源于stack exchange,提问作者rustam-cpp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 01:27:35