2017-06-20 132 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