《Nuitka打包教程》打包可执行文件

其他Nuitka打包技巧见《Python程序打包指南》

一、打包入门

1、打包命令

nuitka xx.py

2、示例代码

import PySimpleGUI as sg  

layout = [
	[sg.Text('Hello Word',size=(22,1))],          
	[sg.Submit('确认'), sg.Cancel('取消')]
] 

window = sg.Window('Demo', layout)  

event, values = window.read()   

运行示例:
《Nuitka打包教程》打包可执行文件_第1张图片

3、执行打包

nuitka test.py

这里的红字部分是提醒我们注意打包有没有漏掉任何库文件,这里暂时先不用管。出现successfully即成功。
《Nuitka打包教程》打包可执行文件_第2张图片
现在的目录示例如下:
《Nuitka打包教程》打包可执行文件_第3张图片
这里的.build文件夹是编译生成的,test.cmdtest.exe都可以用来启动程序,点击test.exe启动一下试试看:
《Nuitka打包教程》打包可执行文件_第4张图片

5、注意

我们这样打包并没有打包进环境,所以在没有安装python和pysimplegui的环境中运行,会提示错误:
《Nuitka打包教程》打包可执行文件_第5张图片
GUI程序运行后边带一个黑乎乎的命令提示框也很难看,我们接下来一起解决。

二、去掉命令提示窗口

命令窗口可以用来调试,有时候直接运行没问题的程序,打包完会有很多问题,可以调试完,再关闭命令提示窗口(打包调试见《Python程序打包指南》)。

2.1、打包命令

nuitka --windows-disable-console test.py

2.2、试运行

《Nuitka打包教程》打包可执行文件_第6张图片

三、脱离python环境运行

3.1、打包命令

nuitka --standalone xx.py

3.2、示例打包

打包命令(同时去掉黑框):

nuitka --standalone --enable-plugin=tk-inter --windows-disable-console test.py

大约打包了2分钟,因为我这里引入了pysimplegui这个库,这个库依赖于tkinter,所以使用--enable-plugin=tk-inter命令告诉nuitka打包的时候一起打包进去!!!(打包插件见《Python程序打包指南》其他篇章)

使用--standalone的话,会默认编译打包进去。如果是引入其他如pyqt、pandas、numpy等这些包,那编译起码得40min+(解决方式见《Python程序打包指南》其他篇章)
《Nuitka打包教程》打包可执行文件_第7张图片

3.3、试运行

《Nuitka打包教程》打包可执行文件_第8张图片

四、解释

4.1、python39.dll

看3.2中的截图,可以看到exe同级目录下会有一个python3x.dll文件(绿色标注),在执行exe时,若需要调用外部模块,则需要调用该文件。可以简单理解为是python环境。

你可能感兴趣的:(python打包实战,windows,python,nuitka)