ContinuumIO / anaconda-issues

Anaconda issue tracking
647 stars 221 forks source link

Matplotlib PyQt5 DLL load failed: The specified procedure could not be found #1777

Open kalefranz opened 7 years ago

kalefranz commented 7 years ago

From @idahogray on May 30, 2017 0:50

Matplotlib does not work on Windows due to a problem importing PyQt5. I have included the traceback, the output of conda info, and the list of packages in the environment. I do not have PyQt5 installed in any other location and I did not pip install anything into this environment.

Here is the traceback:

In [3]: import pandas as pd

In [4]: pd.DataFrame([{'a': 1, 'b': 2}]).plot()
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-4-bd759ce77655> in <module>()
----> 1 pd.DataFrame([{'a': 1, 'b': 2}]).plot()

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\pandas\plotting\_core.py in __call__(self, x, y, kind, ax, subplots, sharex, sharey, layout, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, secondary_y, sort_columns, **kwds)
   2618                           fontsize=fontsize, colormap=colormap, table=table,
   2619                           yerr=yerr, xerr=xerr, secondary_y=secondary_y,
-> 2620                           sort_columns=sort_columns, **kwds)
   2621     __call__.__doc__ = plot_frame.__doc__
   2622

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\pandas\plotting\_core.py in plot_frame(data, x, y, kind, ax, subplots, sharex, sharey, layout, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, secondary_y, sort_columns, **kwds)
   1855                  yerr=yerr, xerr=xerr,
   1856                  secondary_y=secondary_y, sort_columns=sort_columns,
-> 1857                  **kwds)
   1858
   1859

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\pandas\plotting\_core.py in _plot(data, x, y, subplots, ax, kind, **kwds)
   1678                             pass
   1679                 data = series
-> 1680         plot_obj = klass(data, subplots=subplots, ax=ax, kind=kind, **kwds)
   1681
   1682     plot_obj.generate()

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\pandas\plotting\_core.py in __init__(self, data, **kwargs)
    890
    891     def __init__(self, data, **kwargs):
--> 892         MPLPlot.__init__(self, data, **kwargs)
    893         if self.stacked:
    894             self.data = self.data.fillna(value=0)

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\pandas\plotting\_core.py in __init__(self, data, kind, by, subplots, sharex, sharey, use_index, figsize, grid, legend, rot, ax, fig, title, xlim, ylim, xticks, yticks, sort_columns, fontsize, secondary_y, colormap, table, layout, **kwds)
    133
    134         if grid is None:
--> 135             grid = False if secondary_y else self.plt.rcParams['axes.grid']
    136
    137         self.grid = grid

pandas\_libs\src\properties.pyx in pandas._libs.lib.cache_readonly.__get__ (pandas\_libs\lib.c:44442)()

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\pandas\plotting\_core.py in plt(self)
    507     @cache_readonly
    508     def plt(self):
--> 509         import matplotlib.pyplot as plt
    510         return plt
    511

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\matplotlib\pyplot.py in <module>()
    113
    114 from matplotlib.backends import pylab_setup
--> 115 _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
    116
    117 _IP_REGISTERED = None

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\matplotlib\backends\__init__.py in pylab_setup()
     30     # imports. 0 means only perform absolute imports.
     31     backend_mod = __import__(backend_name,
---> 32                              globals(),locals(),[backend_name],0)
     33
     34     # Things we pull in from all backends

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\matplotlib\backends\backend_qt5agg.py in <module>()
     14
     15 from .backend_agg import FigureCanvasAgg
---> 16 from .backend_qt5 import QtCore
     17 from .backend_qt5 import QtGui
     18 from .backend_qt5 import FigureManagerQT

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\matplotlib\backends\backend_qt5.py in <module>()
     24
     25 from matplotlib.widgets import SubplotTool
---> 26 import matplotlib.backends.qt_editor.figureoptions as figureoptions
     27
     28 from .qt_compat import (QtCore, QtGui, QtWidgets, _getSaveFileName,

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\matplotlib\backends\qt_editor\figureoptions.py in <module>()
     18 import matplotlib
     19 from matplotlib import cm, markers, colors as mcolors
---> 20 import matplotlib.backends.qt_editor.formlayout as formlayout
     21 from matplotlib.backends.qt_compat import QtGui
     22

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\matplotlib\backends\qt_editor\formlayout.py in <module>()
     54
     55 from matplotlib import colors as mcolors
---> 56 from matplotlib.backends.qt_compat import QtGui, QtWidgets, QtCore
     57
     58

C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas\lib\site-packages\matplotlib\backends\qt_compat.py in <module>()
    126     if QT_API == QT_API_PYQT5:
    127         try:
--> 128             from PyQt5 import QtCore, QtGui, QtWidgets
    129             _getSaveFileName = QtWidgets.QFileDialog.getSaveFileName
    130         except ImportError:

ImportError: DLL load failed: The specified procedure could not be found.

Here is my environment information:

> conda info
Current conda install:

               platform : win-32
          conda version : 4.3.21
       conda is private : False
      conda-env version : 4.3.21
    conda-build version : not installed
         python version : 3.6.0.final.0
       requests version : 2.12.4
       root environment : C:\Users\kgray\AppData\Local\Continuum\Miniconda3  (writable)

    default environment : C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas

       envs directories : C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs
                          C:\Users\kgray\AppData\Local\conda\conda\envs
                          C:\Users\kgray\.conda\envs
          package cache : C:\Users\kgray\AppData\Local\Continuum\Miniconda3\pkgs
                          C:\Users\kgray\AppData\Local\conda\conda\pkgs
           channel URLs : https://repo.continuum.io/pkgs/free/win-32
                          https://repo.continuum.io/pkgs/free/noarch
                          https://repo.continuum.io/pkgs/r/win-32
                          https://repo.continuum.io/pkgs/r/noarch
                          https://repo.continuum.io/pkgs/pro/win-32
                          https://repo.continuum.io/pkgs/pro/noarch
                          https://repo.continuum.io/pkgs/msys2/win-32
                          https://repo.continuum.io/pkgs/msys2/noarch
            config file : None
             netrc file : None
           offline mode : False
             user-agent : conda/4.3.21 requests/2.12.4 CPython/3.6.0 Windows/10 Windows/10.0.14393
          administrator : False

Here are the packages installed in this environment:

> conda list
# packages in environment at C:\Users\kgray\AppData\Local\Continuum\Miniconda3\envs\pandas:
#
colorama                  0.3.9                    py36_0
cycler                    0.10.0                   py36_0
decorator                 4.0.11                   py36_0
et_xmlfile                1.0.1                    py36_0
icu                       57.1                     vc14_0  [vc14]
ipython                   6.0.0                    py36_1
ipython_genutils          0.2.0                    py36_0
jdcal                     1.3                      py36_0
jedi                      0.10.2                   py36_2
jpeg                      9b                       vc14_0  [vc14]
libpng                    1.6.27                   vc14_0  [vc14]
matplotlib                2.0.2               np112py36_0
mkl                       2017.0.1                      0
numpy                     1.12.1                   py36_0
openpyxl                  2.4.7                    py36_0
openssl                   1.0.2l                   vc14_0  [vc14]
pandas                    0.20.1              np112py36_0
path.py                   10.3.1                   py36_0
pickleshare               0.7.4                    py36_0
pip                       9.0.1                    py36_1
prompt_toolkit            1.0.14                   py36_0
pygments                  2.2.0                    py36_0
pyparsing                 2.1.4                    py36_0
pyqt                      5.6.0                    py36_2
python                    3.6.1                         2
python-dateutil           2.6.0                    py36_0
pytz                      2017.2                   py36_0
qt                        5.6.2                    vc14_4  [vc14]
setuptools                27.2.0                   py36_1
simplegeneric             0.8.1                    py36_1
sip                       4.18                     py36_0
six                       1.10.0                   py36_0
tk                        8.5.18                   vc14_0  [vc14]
traitlets                 4.3.2                    py36_0
vs2015_runtime            14.0.25123                    0
wcwidth                   0.1.7                    py36_0
wheel                     0.29.0                   py36_0
zlib                      1.2.8                    vc14_3  [vc14]

Copied from original issue: conda/conda#5449

scivision commented 7 years ago

Any word on this issue? Also experiencing it on latest Windows + Python 3.6/Matplotlib/Qt5. My workaround:

pip install pyqt5

which installs QT 5.9, and then works. https://www.scivision.co/matplotlib-pyqt-importerror-dll-load-fail-fix/

idahogray commented 7 years ago

I haven't had an opportunity to do anything with this. Thanks for sharing your solution.

CompPhysChris commented 6 years ago

Using the most recent versions of the anaconda 3.6 packages as of right now, I'm getting a different error.

C:\Users\cq6\git\Pycroscopy\pycroscopy>python -c "import matplotlib.pyplot" Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Users\cq6\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 29, in <module> import matplotlib.colorbar File "C:\Users\cq6\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\colorbar.py", line 36, in <module> import matplotlib.contour as contour File "C:\Users\cq6\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\contour.py", line 21, in <module> import matplotlib.font_manager as font_manager File "C:\Users\cq6\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 58, in <module> from matplotlib import afm, cbook, ft2font, rcParams, get_cachedir ImportError: DLL load failed: The specified procedure could not be found.

By trying to import each of them independently, I've narrowed it down to ft2font.