pyqt5界面程序python打包发布,利用pyinstaller发布,可以在没有pyhton的电脑上运行,以及遇到的一些问题和解决办法。

首先pyinstaller的安装过程,我这里就不在赘述了,百度都是有的。可以现在安装包安装,可以pip安装。

我的项目在这个目录下面。main.py是程序入口。

然后打开终端界面,可以是anconda或者cmd都行,进到你代码所在目录。我的如下图所示。

然后执行pyinstaller -F -w mian.py

他会在目录下生成一个mian.spec文件,还有dist文件,还有一个build文件。其中dist文件中存放的是exe可执行文件。这里我执行了两次,所以我把前一个命名为main1了。

pyqt5界面程序python打包发布,利用pyinstaller发布,可以在没有pyhton的电脑上运行,以及遇到的一些问题和解决办法。

 

 

打开dist,里面就是main.exe,可以独立的粘贴到任何地方运行,不用其他附加项。

pyqt5界面程序python打包发布,利用pyinstaller发布,可以在没有pyhton的电脑上运行,以及遇到的一些问题和解决办法。

build文件下,也会有一个mian文件,mian文件中是生成的一些东西,这些东西用不着。只需要一个mian.exe就够了。

pyqt5界面程序python打包发布,利用pyinstaller发布,可以在没有pyhton的电脑上运行,以及遇到的一些问题和解决办法。

 

我遇到的第一个问题,递归深度达到最大,如下所示。解决办法是,在生成的main.spec文件中,在最前面加上import sys
sys.setrecursionlimit(1000000) 。将递归深度加大。python默认的好像是1000.然后就可以成功生成exe文件了。

pyqt5界面程序python打包发布,利用pyinstaller发布,可以在没有pyhton的电脑上运行,以及遇到的一些问题和解决办法。

pyqt5界面程序python打包发布,利用pyinstaller发布,可以在没有pyhton的电脑上运行,以及遇到的一些问题和解决办法。

 

生成exe文件后,在自己电脑上是可以正常使用的。为了进行测试,我在一个全新的电脑上进行测试,上面没有按照pyhton什么的,发现会报错。无法定位程序输入点 ucrtbase.terminate 于动态链接库 api-ms-win-crt-runtime-l1-1-0.dll 上。解决办法是

下载 Visual C++ Redistributable ,链接

https://www.microsoft.com/en-us/download/confirmation.aspx?id=48145。进行安装。然后就可以在全新的电脑上运行了,pyhton还是很强大的。

pyqt5界面程序python打包发布,利用pyinstaller发布,可以在没有pyhton的电脑上运行,以及遇到的一些问题和解决办法。

pyqt5界面程序python打包发布,利用pyinstaller发布,可以在没有pyhton的电脑上运行,以及遇到的一些问题和解决办法。