pyinstaller打包pyqt4程序运行时报错无法定位程序输入点 ucrtbase.terminate 于动态链接库 api-ms-win-crt-runtime-l1-1-0.dll 上...

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40695895/article/details/88052034

转载自:https://www.cnblogs.com/boliu/p/7574804.html

问题

pyinstaller打包的pyqt5程序在部分电脑上会失败。用户截图提示下边错误日志

无法定位程序输入点 ucrtbase.terminate 于动态链接库 api-ms-win-crt-runtime-l1-1-0.dll 上

以及

Error loading Python DLL: C:\Users***\python35.dll (error code 127)

解决方案

查找一通之后,在stackoverflow找到了两个解决方案

  • Install theWindows 10 SDK and add the ucrt DDL dirs to your system path (C:\Program Files\Windows Kits\10\Redist\ucrt or C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x64 depending on your system) before building

  • Use Python 3.4 to build instead of 3.5+

转载自:https://www.cnblogs.com/boliu/p/7574804.html

以上全部为转载,以下为原创。

我使用的时候第一种办法死活没有效果,无论是安装 Windows 10 SDK还是安装 vs 2015 redistributeable都无法解决问题。

最后还是通过降级为python 3.4才解决这个问题的。

这里分享一个不影响原来python环境安装python 3.4的方法。

首先我们去python官网下载python 3.4版本的安装包,然后安装到电脑上,记住在安装的时候不要勾选添加到环境变量的选项(默认是不勾选的,所以一直下一步就行)。

安装好python 3.4z之后再安装pyqt4,在安装pyqt4的时候会要我们选择python的目录,这里记得要选我们python 3.4的安装目录,不然pyqt4是无法安装到python 3.4的环境中的。

这里附上pyqt4的安装包 pyqt4百度网盘, 提取码:b2nl
有csdn积分的朋友可以点击这个链接,就当送我一点积分了,不然平时下东西的时候挺麻烦的。

然后我们再用pycharm创建一个新的项目(这一步一定要在安装好pyqt4之后,不然创建的项目里是没有pyqt4的),在创建项目的时候勾选 New environment using Virtualenv,下面的 base interpreter选择python3.4安装目录下的python.exe。记住这一步一定不能勾选 inherit global site-packages,因为这里的全局包是你原来安装的python版本,如果勾选了这个选项的话,就不再使用python3.4的环境了。

上面的这些做好之后再在新建的项目里把pyinstaller安装好,然后就可以愉快的打包了。

最后吐槽一句,千万别安装360,不要问我为什么( ̄▽ ̄)"

猜你喜欢

转载自blog.csdn.net/qq_40695895/article/details/88052034