DLL load failed when importing PyQt5

Question:

I have installed PyQt5 on windows platform and and getting an importError: DLL load failed.

I have installed pyqt5 using the command

pip3 install pyqt5
Successfully installed pyqt5-5.8.1

My Python version is as follows:

Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32

The import Error is as follows:

from PyQt5.QtWidgets import QApplication
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.

Thanks & Regards

Asked By: gdRow

||

Answers:

It is because of missing Python3.dll (stub dll, that re-exports Python3x.dll functions, so that one version of extension can work for multiple versions of python).

If your Python distro doesn’t bundle python3.dll, you can try one from WinPython (https://winpython.github.io/).

At least the 2017/04/01 versions should have it.

1) Download WinPython (‘Zero’ version suffices; must be same “main version” – 3.5/3.6 -and “bitness” – 32/64 – as your Python !!!).

2) Extract to some temp directory, take the python3.dll and stick it into your python dir, next to the python3x.dll.

3) Enjoy working QT

Answered By: Miloslav Raus

If you created a virtualenv, check if python3.dll was copied into the Scripts directory of that virtualenv. Chances are only python35.dll (or python36.dll, etc., depending on the Python version) was copied, in which case you would get the error you’re getting.

Answered By: AndreKR

I found an alternative fix.

I was using a virtualenv because PyCharm had made one for me and I didn’t know better. I had installed PyQt5 in that virtualenv.

I switched to using no virtualenv, and installed PyQt5 in the global Python dir. That fixed it.

Answered By: Stefan Monov

I know the topic is old but I have also had this problem with the newest version of PyQT 5.11 but I’ve downgraded it to 5.9 via:

pip install PyQT5==5.9

and it has solved the issue.

Answered By: LemurPwned

In Windows 10 using Python 3.6 I fixed this error going through the following steps:

1) Install PyQt5 with pip install pyqt5

2) As explained in this Microsoft website, I modified my Visual Studio 2017 Community installation enabling “Python native development tools”

enter image description here

3) Copy python3.dll from C:Program Files (x86)Microsoft Visual StudioSharedPython36_64 to C:IntelPython3Libsite-packagesPyQt5 (check your directory)

Answered By: Saullo G. P. Castro

I tried all the solutions here and some of ones elsewhere, however any of them did not work for me. Solution that worked for me is to install a newer Python version.

Answered By: Ali Eren Çelik

You can try downloading 64bit Python Installer (Windows x86-64 executable installer) from here. I am using PyQt5==5.10.1. Solve my problem.

Answered By: aknay

In my case, I had Windows 10 32-bits and Python 3.7.2.
Using PyQt5 5.11 installed via pip I got this error:

from PyQt5.QtWidgets import QApplication
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.

I noticed that version 5.11 came without Qt DLLs, so I reinstalled an earler version with
python -m pip uninstall PyQt5 and python -m pip install PyQt5==5.10

Never use –no-cache-dir since it will produce an assert error when installing the whl file:

assert building_is_possible
assertion Error

I ended up installing 5.10 and had the following error:

qt.qpa.plugin: Could not load the Qt platform plugin "windows" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

After setting QT_DEBUG_PLUGINS and even plugin path with:

set QT_DEBUG_PLUGINS=
set QT_PLUGIN_PATH=C:Python37-32Libsite-packagesPyQt5Qtplugins

I realised that the dll qwindows.dll was searched in the right path where it resides.

TL;DR: I re-ran my python Qt script with UAC elevation, and guess what, it worked !

Answered By: Orsiris de Jong

This can also happen when you have a version of Anaconda installed which comes with PyQt5 and you overshadow that package with a pip installed version. Uninstalling the pip installed version corrected the problem for me.

Answered By: Travis

Solution

  1. Close all programs & compilers
  2. Open Anaconda Navigator Make sure you have installed pyqt and qtpy modules (qtawesome optional)
  3. From Anaconda Navigator Home and launch VS code, Jupyter your favored editor
  4. Run your program!-

this is not a permanent fix but it worked for me hope it works for you too @Miloslav Raus answer didn’t work for me

Answered By: Rohan Arora

The answer is quite simple sometimes. Went through a lot of headaches because the application was running smoothly before restarting my computer. However, I just said to myself, maybe windows just can’t load the DLL module? So I restarted my computer again and ran again.

Worked perfectly. Hope, it helped someone.

Answered By: Mujeeb Ishaque

I had the same issue.

The problem was that my PySide2 version was different from PyQt5 version (PySide2: 5.12, PyQt5: 5.14). I upgraded PySide2 to 5.14 and it worked for me. (Python 3.6.5)

pip install PySide2==5.14

Answered By: WMax

Update 2020-06

On a newborn Windows 10 64 Pro with a shiny new Python 3.8 64 and pipenv install pyside2 I got the cursed “DLL load failed”. The double-verified solution is an underestimated dependency on the Microsoft Visual C++ Runtime. A foolproof installer is available at https://aka.ms/vs/16/release/vc_redist.x64.exe

Versions 5.13 to 5.15 are running out of the box now as soon as the runtime was installed.

Cheers!

Answered By: mayk

I could manage to fix it for my conda environment (conda 4.6.11, python 3.6)
I was struggling with this issue for a long time, trying all the fixes suggested here. In the end, I figured it out! Use pip3 install instead conda install (my conda seems to perform poorly), even in conda environment (pip3, not just pip, pip didn’t work for me).

How I found it out? I pip3 install PyQt5==5.9.1, it loaded fine, but the issue with DLL load failed moved to the other library, like PIL, so I did the same installed it with pip3 and then I had to reinstall each library with pip3 and now it works.

Answered By: Maria Victorova

If you have tried all/most of the above and still gets no where. Here is the solution.

Firstly, exclude the virtual environment issues by checking the PyQt5 path.
Open a Windows terminal, and type below

python
import PyQt5
PyQt5.__file__

Now that you have seen the PyQt5 path that the default python recognizes (before __init__.py), check that in File Browser and you should find the PyQt5 directory. It is fine, and the DLL import error is not due to this issue!

If the DLL cannot be imported problem persists, it is because your Windows lacks higher Visual C++ runtime environment. Yes, PyQt5 for Windows is built on Visual C++ 2015-2019. Just download and install that patch to your Windows and restart, problem solved.

Answered By: George Y

In Windows 10, it’s build-in python 3.7. And it seems too minimalistic.

Try uninstall it and install python3 from python.org

Then you should reinstall pyqt5 for new python.

Answered By: vitperov

Recently had this problem on a machine running on an old version of Python. The solution was to import every pyqt5 related modules before doing any other imports.

Answered By: Erlinska

My PyQt5 was throwing this "module not found" error on ‘from PyQt5 import QtGui’

When I reinstalled PyQt5, Pip threw an error traceback that started at:

  • ValueError: Unable to find resource t64.exe in package
    pip._vendor.distlib

A quick check for t64.exe in Pythonlibsite-packagespip_vendordistlib (the path given in the error message, but with dots) confirmed no t64.exe file.

Fortunately, I had a project distribution archived that had the t64.exe file, so I copied it over to my machine’s C:Program FilesPython directory and that handled the problem.

NOTE: I’ve been working on this since Windows crashed on startup yesterday and a VERY DICEY system recovery mangled my Python installation. I wiped out my entire Python installation and reinstalled it at least twice, running ‘pip –upgrade’ each time. One certainly wonders why the t64.exe file got dropped from the installation–and why a reinstall didn’t restore it…

Answered By: Leland

If anyone stumbles on this and is tempted to change their software…first try this simple fix which worked for me. Reboot first before you try anything else then try XSeg editing again.

Answered By: Solo

Update in 2022:

After looking at the comments around the DLL issue, none were recent, and I happened to figure out why this issue still persists. The current version as of writing for PyQt5 is 5.15.6. 5.15.6, 5.15.5 and 5.15.4 give the DLL issue. Not sure how to fix it but to downgrade to 5.15.3.

Actually I never upgraded PyQt5 because I probably had a similar issue somewhere else. But when I installed PyQtWebEngine, it automatically upgraded to latest PyQt5, and required atleast PyQt version 5.15.4 (which gives the DLL error). The way I solved this second issue was to downgrade from
PyQtWebEngine-5.15.5 to PyQtWebEngine-5.15.3.

In summary for those that need:

  1. PyQt5 to work:

pip install PyQt5==5.15.3

  1. PyQt5 and PyQtWebEngine

pip install PyQt5==5.15.3

pip install PyQtWebEngine==5.15.3

Answered By: AndrinoG

I had the same error. I just restarted my pc and tried running the code once more and it ran perfectly.

Answered By: Owiti harron ds

I know the question is for PyQT5 but this is the top post when searching for this same issue in PyQT6. So this answer is for anyone looking for a solution in PyQT6.

I found that the issue happens when using PyQT6 version 6.1.0. Upgrading PyQT6 to the latest version (6.3.0 as of writing this answer) resolves this issue. I noticed my project had a dependency on PyQT6-Tools which downgrades the installation of PyQT6 from 6.3.0 -> 6.1.0.

My solution was to remove project dependency from PyQT6-Tools and reinstall PyQT6 this installs the latest version again. Another way is to install PyQT6 then install PyQT6-Tools and then upgrade PyQT6. I checked QTDesigner which works fine not sure about pyuic.

Answered By: Arkit Patel

Don’t use pip to install PyQt5!!

Just uninstall all your pip PyQt5 and use conda install -c anaconda pyqt

Answered By: leng yuner

I uninstall these packages and reinstall pyqt5 fix

pip uninstall pyqt5
pip uninstall pyqt5-sip
pip uninstall pyqt5-qt5

pip install pyqt5
Answered By: tom mike

My workaround to this problem was uninstalling and reinstalling PyQt.

  1. use pip list to list all the installed packages.
  2. uninstall everything that related to the PyQt with pip uninstall (not just pyqt).
  3. Install PyQt again without using the cache like pip install --no-cache-dir pyqt6

This worked for me.

Answered By: Sahan

I faced same issue while using GUI with GNU Radio. The error message for me is DLL load failed while importing QtCore: The specified procedure could not be found.
I installed GNU Radio in its own environment but I am trying to launch it from windows start menu, so I am facing this issue.
One time I started the same flow graph by launching the GNU Radio from the environment and then no issues. I manually launched Anaconda prompt and activated the environment where I installed GNU Radio and the error is gone.

… reinstall the PyQt5 python package with this argument –ignore-installed:

pip3 install PyQt5 --user --ignore-installed