使用pyinstaller时缺少dll文件

时间:2016-07-30 13:22:15

标签: python qt dll pyinstaller

美好的一天!

我正在使用python 3.5.2和qt5,pyqt5和sip14.8。 我也使用最新的pyinstaller bracnch(3.3.dev0 + g501ad40)。

我正在尝试为基本的hello world程序创建一个exe文件。

from PyQt5 import QtWidgets
import sys

class newPingDialog(QtWidgets.QMainWindow):

def __init__(self):
    super(newPingDialog, self).__init__()
    self.setGeometry(50, 50, 500, 300)
    self.setWindowTitle("hello!")
    self.show()


app = QtWidgets.QApplication(sys.argv)
GUI = newPingDialog()
sys.exit(app.exec_())

起初,我曾经遇到过一些关于crt-msi的错误。所以我重新安装了SDK和c ++运行时,并将它们添加到我的环境中。 但现在我不断收到有关丢失dll的错误(qsvg,Qt5PrintSupport)

6296 WARNING: lib not found: Qt5Svg.dll dependency of C:\users\me\appdata\local\programs\python\python35\lib\site-pac
kages\PyQt5\Qt\plugins\imageformats\qsvg.dll
6584 WARNING: lib not found: Qt5Svg.dll dependency of C:\users\me\appdata\local\programs\python\python35\lib\site-pac
kages\PyQt5\Qt\plugins\iconengines\qsvgicon.dll
6992 WARNING: lib not found: Qt5PrintSupport.dll dependency of C:\users\me\appdata\local\programs\python\python35\lib
\site-packages\PyQt5\Qt\plugins\printsupport\windowsprintersupport.dll
7535 WARNING: lib not found: Qt5PrintSupport.dll dependency of c:\users\me\appdata\local\programs\python\python35\lib
\site-packages\PyQt5\QtPrintSupport.pyd
8245 INFO: Looking for eggs
8245 INFO: Using Python library c:\users\me\appdata\local\programs\python\python35\python35.dll
8246 INFO: Found binding redirects:

我检查了两个dll并且设置了PATH。我还尝试手动将它们添加到我的dist文件夹中,但它没有帮助。

我非常感谢您的任何建议!

6 个答案:

答案 0 :(得分:16)

这可能更像是一种解决方法,Pyinstaller可能需要修复。

我发现--paths参数指向包含 Qt5Core.dll Qt5Gui.dll 等的目录帮助

pyinstaller --paths C:\Python35\Lib\site-packages\PyQt5\Qt\bin hello.py

答案 1 :(得分:2)

我在github和stackoverflow上阅读了所有复杂的解决方案来解决这个问题。 但是,以下简单的解决方案对我有用:

第1步:pip3卸载pyinstaller

第2步:pip install pyinstaller

第3步:pyinstaller --onefile filename.py

我在两台面临同样问题的计算机上尝试了这个解决方案。 两者都有效。 如果这对您有用,请告诉我。赞许之后将不胜感激。 干杯

答案 2 :(得分:1)

现在已经在PyInstaller的最新开发分支中修复了这个问题,请参阅this Issue for PyInstaller on GitHub

答案 3 :(得分:0)

通常添加--Path参数指向目录包含不存在的库可以解决问题。如果使用PyInstaller 3.3dev,如果命令字符串解析可能会出现问题。如果路径包含空格,通常会发生这种情况在这种情况下,您可以修改PyInstaller生成的pathex文件中的.spec参数,然后使用PyInstaller运行它来构建可执行文件。

pyinstaller file_name.spec

希望很快就会修复.....

答案 4 :(得分:0)

  

26095警告:找不到lib:c:\ users \ user \ appdata \ local \ programs \ python \ python36-32 \ DLLs \的api-ms-win-crt-runtime-l1-1-0.dll依赖性select.pyd

在C:驱动器中搜索dll,并在pyinstaller命令中设置路径。以下命令修复了Windows 10中的上述pyinstaller错误:

pyinstaller --paths "C:\Windows\WinSxS\x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_50c6cb8431e7428f" hello.py

答案 5 :(得分:-1)

可以使用“ pyinstaller --onefile filename.py”。 exe文件将在dist文件夹中创建