Missing dll files when using pyinstaller
Solution 1
This may be more like a workaround and Pyinstaller might need fixing.
I found out that --paths
argument pointing to the directory containing Qt5Core.dll, Qt5Gui.dll, etc. helped
pyinstaller --paths C:\Python35\Lib\site-packages\PyQt5\Qt\bin hello.py
Solution 2
I read all complicated solutions on github and stackoverflow for this problem. However, the below simple solution is what worked for me:
Step 1: pip3 uninstall pyinstaller
Step 2: pip install pyinstaller
Step 3: pyinstaller --onefile filename.py
I tried this solution on 2 different computers which were facing the same problem. Both worked. Please let me know if this works for you as well. Thumbs up would be appreciated after that. Cheers
Solution 3
This has now been fixed in the latest development branch of PyInstaller, see this Issue for PyInstaller on GitHub.
shultz
Updated on July 19, 2022Comments
-
shultz almost 2 years
Good day!
I'm using python 3.5.2 with qt5, pyqt5 and sip14.8. I'm also using the latest pyinstaller bracnch (3.3.dev0+g501ad40).
I'm trying to create an exe file for a basic hello world program.
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_())
At first, I used to get some errors regarding crt-msi. So I've reinstalled SDK and c++ runtime and added them to my environment. But now I keep getting errors about missing dlls (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:
I've checked and both dlls exist and have their PATH set. I also tried to manually add them to my dist folder, but it didn't helped.
I'll highly appreciate any advice you might have!
-
shultz almost 8 yearsIt worked! I've spent 3 days on it, and your solution worked! thank you!
-
MrLeeh over 7 yearsThe same for me. Thanks very much for this tipp. I was close to giving up on it. With --paths it works.
-
MrLeeh over 7 yearsIf you use a virtual environment you can also set the --paths to
venv\Lib\site-packages\PyQt5\Qt\bin
. -
Overdrivr over 5 yearsInside the spec file, there is also the
HOMEPATH
variable that can automatically expand to python installation directory. Here, it'sC:\Python35\Lib\site-package\
. It's more portable than hardcoded paths., and here it equals toHOMEPATH + \\PyQt5\Qt\bin
-
miThom about 5 yearsdoesn't work for most modules using dll's i had to manually --add-data the dll's themselves from out of the virtualenv
-
Rob Fisher over 2 yearsWorked for me; I suspect because I had some sort of Python version mismatch (it was complaining about lack of python38.dll when I was using Python 3.9).