Jonvy

导航

nuitka打包python程序

1. 安装 Nuitka

在使用 Nuitka 之前,你需要确保已安装 Nuitka 及其依赖项。可以通过以下命令安装 Nuitka:

 pip install nuitka

为了让 Nuitka 编译出高效的二进制文件,还需要安装 C 编译器(如 MinGW 或者 MSVC):

  • Windows:推荐使用 MinGW 或者 MSVC 编译器。

在安装过程中如遇到以下两个错误

(1)

Nuitka: Downloading 'https://github.com/brechtsanders/winlibs_mingw/releases/download/14.2.0posix-19.1.1-12.0.0-msvcrt-r2/winlibs-x86_64-posix-seh-gcc-14.2.0-llvm-19.1.1-mingw-w64msvcrt-12.0.0-r2.zip'.
FATAL: Failed to download 'https://github.com/brechtsanders/winlibs_mingw/releases/download/14.2.0posix-19.1.1-12.0.0-msvcrt-r2/winlibs-x86_64-posix-seh-gcc-14.2.0-llvm-19.1.1-mingw-w64msvcrt-12.0.0-r2.zip' due to

'Remote end closed connection without response'. Contents should manually be copied to 'C:\Users\jonvy.you\AppData\Local\Nuitka\Nuitka\Cache\DOWNLO~1\gcc\x86_64\14.2.0posix-19.1.1-12.0.0-msvcrt-r2\winlibs-x86_64-posix-seh-gcc-14.2.0
-llvm-19.1.1-mingw-w64msvcrt-12.0.0-r2.zip'.

(2)

Nuitka: Downloading 'https://dependencywalker.com/depends22_x64.zip'.
FATAL: Failed to download 'https://dependencywalker.com/depends22_x64.zip' due to '[WinError 10054] An existing connection was forcibly closed by the remote host'. Contents should manually be copied to 'C:\Users\jonvy.you\A
ppData\Local\Nuitka\Nuitka\Cache\DOWNLO~1\depends\x86_64\depends22_x64.zip'.

需手工下载需要的文件,放入上述指定的用户文件夹内

2. 编译python代码

命令行输入:

(假设python文件为 asyn.py)

nuitka --onefile --standalone --enable-plugin=tk-inter --mingw64 asyn_yolo.py

不需要tk-inter GUI

nuitka --onefile --standalone --mingw64 asyn_yolo.py

以下命令,不打包成一个文件,文件会比较小:

nuitka --standalone --mingw64 asyn_yolo.py

 

如果误报病毒:

优化编译过程 


  • --prefer-source-code: 强制 Nuitka 使用 Python 源代码而不是字节码,这有助于进行更彻底的优化。

  • --lto=yes: 启用链接时优化 (Link Time Optimization)。这通常需要你的 C 编译器支持,并且可以产生更小、更快的可执行文件,也可能减少一些可疑的模式。

nuitka --standalone --mingw64 --deployment --prefer-source-code --lto=yes asyn_yolo.py

posted on 2025-04-30 17:06  不亮  阅读(248)  评论(0)    收藏  举报