写了一个小程序需要打包成exe,试了pyinstaller,打包出来超过1G,看网上说Nuitka效果很好,决定尝试一下。
1、创建python≤3.8版本虚拟环境
因为Anaconda自带的base虚拟环境中python版本3.10,于是在Anaconda Prompt下面使用:
conda create -n gui python==3.7
创建一个名叫gui的虚拟环境,至于为什么python版本这么低,原因参看链接中Requirements部分
2、安装Nuitka所需的C编译器——Mingw64
从这里下载MinGW64,然后选择与Python匹配的64位或32位,一般选择x86_64-win32-sjlj。将其安装到C:\MinGW64或\MinGW64(与Nuitka运行相同的磁盘根目录)以自动找到它。
3、安装Nuitka
进入Anaconda Prompt里面,**之前的虚拟环境:
conda activate gui
然后,再安装,如下三选一
pip install nuitka # 或者 python -m pip install nuitka # 或者 conda install -c conda-forge nuitka
4、创建一个hello.py程序
import time def job(): print("hello") if __name__ == "__main__": while True: job() time.sleep(1)
加个延时是为了后面显示需要,我看很多示例程序都是只用一句print,打包好程序exe,点击运行一下就退出,根本看不到输出信息。
5、打包
利用Anaconda Prompt**虚拟环境,切换到py程序所在文件夹,然后
nuitka --mingw64 --show-progress --show-scons hello.py