Nuitka打包python为.exe时遇到的坑

您所在的位置:网站首页 python代码封装exe Nuitka打包python为.exe时遇到的坑

Nuitka打包python为.exe时遇到的坑

2023-03-14 10:06| 来源: 网络整理| 查看: 265

一、知乎入坑

写了一个小程序需要打包成exe,试了pyinstaller,打包出来超过1G,看知乎上Nuitka效果很好,决定尝试一下。 作者在使用时设定了非常多的限制条件,比如要用不带Anaconda、多个python版本的电脑,甚至还用上了虚拟机。 我是有Anaconda,决定尝试一下。

二、创建python≤3.8版本虚拟环境

因为Anaconda自带的base虚拟环境中python版本3.10,于是在Anaconda Prompt下面使用:

conda create -n gui python==3.7

创建一个名叫gui的虚拟环境,至于为什么python版本这么低,原因参看链接中Requirements部分

三、安装Nuitka所需的C编译器——Mingw64

从这里下载MinGW64,然后选择与Python匹配的64位或32位,一般选择x86_64-win32-sjlj。将其安装到C:\MinGW64或\MinGW64(与Nuitka运行相同的磁盘根目录)以自动找到它。具体安装步骤参考这里第1-3步

四、安装Nuitka

进入Anaconda Prompt里面,激活之前的虚拟环境:

conda activate gui

然后,再安装,如下三选一

pip install nuitka # 或者 python -m pip install nuitka # 或者 conda install -c conda-forge nuitka 五、创建一个hello.py程序 import time def job(): print("hello") if __name__ == "__main__": while True: job() time.sleep(1)

加个延时是为了后面显示需要,我看很多示例程序都是只用一句print,打包好程序exe,点击运行一下就退出,根本看不到输出信息。

六、打包

利用Anaconda Prompt激活虚拟环境,切换到py程序所在文件夹,然后

nuitka --mingw64 --show-progress --show-scons hello.py 标题七、遇到的坑

第一个坑:

ModuleNotFoundError("No module named 'colorama'").

解决办法: 激活虚拟环境,pip install colorama

第二个坑:

Nuitka-Scons:INFO: CC 'C:\\mingw64\\bin\\gcc.exe' version check gives (8, 1, 0) Nuitka-Scons:INFO: Initial CC: 'gcc' Nuitka-Scons:INFO: Initial CCVERSION: (8, 1, 0) Nuitka-Scons:INFO: Checking usability of 'C:\\mingw64\\bin\\gcc.exe' from 'gcc' Nuitka-Scons:INFO: Too old gcc 'C:\\mingw64\\bin\\gcc.exe' ((8, 1, 0)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3