2016-08-18 2 views
1

Ich habe einige Probleme mit Sub-Modul von scipy in Python integrieren. Ich habe eine 64-Bit-Architektur und es scheint, nach den ersten Zeilen des Python-Interpreters (siehe unten), dass ich auch einen 64-Bit-Build von Python zusammen mit Anaconda verwende.Python scipy Modul Importfehler wegen fehlender ._ufuncs dll

Im Folgenden ist das Problem (Ich schrieb nur den minimalen Code zu zeigen, was passiert)


Python 3.4.3 |Anaconda 2.3.0 (64-bit)| (default, Mar 6 2015, 12:06:10) [MSC v.1600 64 bit (AMD64)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import scipy 
>>> import scipy.integrate 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Users\*********\Anaconda3\lib\site-packages\scipy\integrate\__init__.py", line 55, in <module> 
    from .quadrature import * 
    File "C:\Users\*********\Anaconda3\lib\site-packages\scipy\integrate\quadrature.py", line 10, in <module> 
    from scipy.special.orthogonal import p_roots 
    File "C:\Users\*********\Anaconda3\lib\site-packages\scipy\special\__init__.py", line 636, in <module> 
    from ._ufuncs import * 
ImportError: DLL load failed: Le module spécifié est introuvable. 

Das gleiche mit dem Import geschieht scipy.special

Wie Sie sehen können scipy kann importiert werden, jedoch erzeugt scipy.integrate einen Fehler. Was seltsam ist, ist, dass im Ordner ... \ lib \ site-packages \ scipy \ special die Datei ._ufuncs.pyd erscheint. Auch verwende ich scipty regelmäßig für andere Zwecke, und alles funktioniert in der Regel gut.

Ich benutze Version 0.18.0 von scipy und pip 1.8.1. Ich habe versucht, scipy mit Conda neu zu installieren, aber das scheint nichts zu ändern.

Es scheint, dass die DLL nicht gefunden werden kann. Ich habe ein paar Einträge im Internet gefunden (darunter auch eine, die rät, eine "libmmd.dll" in C: \ Windows \ SysWOW64 herunterzuladen) mit einem ähnlichen Problem, aber keine scheint zu funktionieren. Meine Vermutung ist, dass dies immer noch ein Pb von 32-64 Bit-Kompatibilität ist, da dies die häufigste Pb mit Python ist und ich erinnerte mich daran, riesige Pb, wenn zuerst alles vor ein paar Monaten.

Also, im Anschluss an die erste Frage, gibt es eine Möglichkeit zu wissen, welche Version (32 Bit oder 64 Bit) jedes Pakets oder Dll ist effektiv installiert/geladen? Haben Sie eine andere Idee, warum ich diese Fehlermeldung bekomme?

Vielen Dank für Ihre Antworten, dieses Problem ziemlich frustrierend ist ...

Antwort

1

I durch die folgenden Schritte gelöst:

  1. MKL installieren.

  2. Und für meine Situation, überprüfte ich \scipy\special\_ufuncs.cp36-win_amd64.pyd mit Dependency Wakler. Gefunden habe ich vermisse LIBIFCOREMD.DLL und LIBMMD.DLL. Ich löste dies durch Installation Intel Distribution for Python. Intel Distribution für Python ist eigentlich eine spezielle Version von Python 3.5. Und es enthält viele DLL benötigt. Nach der Installation von Intel Distribution für Python gehen Sie zu path_to_Intel_Distribution_for_Python\Library\bin (auf meinem Computer ist C:\IntelPython3\Library\bin), und kopieren Sie alle Ordner und Dateien auf path_to_your_default_python\Library\bin (auf meinem Computer ist C:\Anaconda3\Library\bin). capture (ignorieren Sie andere fehlende dlls nach this answer).

Dann Problem gelöst.

PS. Vielleicht werden auch Dateien in path_to_Intel_Distribution_for_Python\Library\include\ benötigt?

PPS. Sie können Intel Distribution für Python deinstallieren, wenn Sie es nicht mehr benötigen.

PPPS. Ein einfacherer Weg ist das Rad zu benutzen. Unofficial Windows Binaries for Python Extension Packages. aber ich mag conda update --all verwenden, um Pakete zu aktualisieren ... dann alles versaut ...

+0

Das hat das Problem für mich gelöst (Windows 10 und Anaconda 3 mit Python 3.5.2). Habe den 'conda update --all' Teil nicht versucht. Vielen Dank! – Johan

Verwandte Themen