在windows上使用nuitka打包Python项目

Nuitka是Python编译器,它是用Python编写,对Python解释器的无缝替换或扩展,兼容多个CPython版本,利用该工具可以对Python文件进行打包。本文用于介绍如何在windows上使用nuitka工具打包Python,包含构建打包环境、安装nuitka、测试打包。

打包环境介绍

本次打包所使用的软硬件环境如下:

1
2
3
4
5
6
7
8
9
10
System: windows 10 企业版 19042.804
NVIDIA DERVER 461.
mingw 8.0.0
visual studio 2017
python 3.7.10
nuitka 0.6.12.3
tensorflow-gpu 2.5.0.dev20210308
cuda 11.1
cudnn 8.0.4
numpy 1.20.1

安装nuitka[1]

  1. 安装C编译器,有以下两个选择,任选一个安装
    • 根据系统配置,下载并安装MinGW64,基于gcc8.0以上的版本,安装过程参考
    • 根据系统配置,下载并安装Visual Studio 2019以上的版本
  2. 下载并安装Python,确保版本为:2.6、2.7或3.3、3.4、3.5、3.6、3.7、3.8、3.9 其中一个
  3. 使用以下命令安装nuitka
1
python -m pip install nuitka

测试nuitka打包[^2]

新建文件mdl.py,内容如下:

1
2
def printinfo(info):
print(info)

同目录下新建main.py,内容如下:

1
2
3
4
from printinfo import printinfo

if __name__=='__main__':
printinfo('Hello nuitka')

测试运行无误后,运行以下命令

1
nuitka --output-dir=test hello.py

运行编译之后的exe程序,得到正确结果即安装完成

1
.\test\main.exe

生成文件说明

生成目录下,文件清理如下:

image-20210316145017152

  • main.build nuitka打包过程的中间文件,可删除
  • main.exe nuitka打包得到的可执行文件
  • python37.dll Pyhton安装目录下的python37.dll的拷贝,代码使用的库包依靠该文件去查找

  1. Nuitka入门指南-新手必备 - 知乎
    [^2 ]: Nuitka User Manual ↩︎