2017-06-20 97 views
0

我试图从我的代码使用PyQt5创建一个可执行文件。我使用Python 3.5.3 -64位,在Windows 10中开发,使用pip安装pyinstaller 3.2.1,并安装了pywin32。 Pyinstaller运行但输出警告,找不到库。Pyinstaller:警告:未找到lib

我用下面的创建我的应用程序:

pyinstaller Start_UI.py 

其输出these warnings

pyinstaller Start_UI.spec 

当我打开pyinstaller创建可执行文件,输出these warnings

,应用程序立即关闭。由于警告,我怀疑该应用程序失败。我怎样才能解决警告,使可执行文件工作?

谢谢你的回复。

编辑: 我搜索我的电脑上的DLL文件,并复制他们进入由解决警告输出dist文件夹:

pyinstaller Start_UI.py 

至于:

pyinstaller Start_UI.spec 

我所在我的Windows SDK安装中的任务api-mis-win-crt- * dll文件,并将它们复制到dist中。这一次,警告没有解决,因为pyinstaller无法找到dll文件。我需要把python的api dll文件放在哪里才能找到它们?

回答

0

经过大量研究,问题是由于Windows 10.虽然我没有找到Windows 10解决方案,但我在Windows 7中解决了我的问题。

我在Windows 7上测试了pyinstaller,但仍然收到警告,但不是api-ms-win-crt - *。dll警告。

我将我的Python35目录中的所有dll文件复制到pyinstaller生成的dist文件夹中。在这一点上,pyinstaller可以把Hello World程序为可执行文件没有错误:

pyinstaller --onefile Hello_World.py 

然而,把一个PyQt5程序转换成可执行给出错误,因为pyinstaller找不到QT5 * .dll文件。要修复这个副本的PyQt5,Qt5 * .dll文件,在Lib/site-packages/PyQt5/Qt/bin下并进入dist。然后告诉pyinstaller该DLL文件正在使用--path:

pyinstaller --onefile --path dist Start_UI.py 

这DIST创建一个工作可执行Start_UI.exe。

0

看起来像错误是由于vcruntime140.dll未包含在dist文件夹中。检查可执行文件后手动将其复制到dist文件夹

+0

文件夹层次结构为workingDir/dist/Start_UI。我检查了Start_UI,看到VCRUNTIME140.dll已经包含在其中。我将VCRUNTIME140.dll复制到你所建议的dist中,运行pyinstaller,但警告尚未消失,可执行文件仍然失败。 – Jaitnium

+1

你有没有尝试过将所有的DLL包含到你的** dist **文件夹中? –

+0

我用窗口的搜索找到〜140个DLL文件,然后我将它们复制到dist。 “pyinstaller Start_UI.py”命令现在没有任何警告,但“pyinstaller Start_UI.spec”仍然充满错误(无api dll)。可执行文件仍然不起作用。 – Jaitnium