webentwicklung-frage-antwort-db.com.de

Importfehler: DLL Laden in Jupyter-Notebook fehlgeschlagen, jedoch in .py-Datei

Ich habe BreakoutDetection das Modul in der Anaconda-Umgebung installiert. Wenn ich versucht habe, das Modul mit import breakout_detection in Jupyter Notebook zu importieren, erhalte ich die folgende Fehlermeldung

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-18-96c0fdb15b96> in <module>()
----> 1 import breakout_detection

C:\Users\sgadiyar\AppData\Local\Continuum\Anaconda2\lib\site-packages\breakout_detection.py in <module>()
     15         except ImportError:
     16             return importlib.import_module('_breakout_detection')
---> 17     _breakout_detection = swig_import_helper()
     18     del swig_import_helper
     19 Elif _swig_python_version_info >= (2, 6, 0):

C:\Users\sgadiyar\AppData\Local\Continuum\Anaconda2\lib\site-packages\breakout_detection.py in swig_import_helper()
     14             return importlib.import_module(mname)
     15         except ImportError:
---> 16             return importlib.import_module('_breakout_detection')
     17     _breakout_detection = swig_import_helper()
     18     del swig_import_helper

C:\Users\sgadiyar\AppData\Local\Continuum\Anaconda2\lib\importlib\__init__.pyc in import_module(name, package)
     35             level += 1
     36         name = _resolve_name(name[level:], package, level)
---> 37     __import__(name)
     38     return sys.modules[name]

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

Ich könnte das gleiche Modul in Python Shell importieren

Ich habe mir die Systempfade (print sys.path) und die Python-Shell und das Jupyter-Notebook angesehen. Sie sind beide gleich. Der ausführbare Pfad (print sys.executable) ist für beide gleich. 

Kann mir jemand bei den Schritten helfen, die ich zur Behebung dieses Problems ergreifen sollte? Vielen Dank!

4
ultramarine

Ich habe das gleiche Problem beim Ausführen eines Jupyter-Notebooks von PowerShell festgestellt. Obwohl die Frage vor einem Jahr gestellt wurde, beantworte ich sie hier, um denjenigen zu helfen, die in letzter Zeit den gleichen Fehler feststellen. In meinem Fall habe ich zuerst die Root-Umgebung activate base aktiviert, dann lief ich jupyter notebook und es hat gut funktioniert. Sobald Sie die Basis aktiviert haben, werden Sie feststellen, dass sich die Aufforderung wie folgt ändert "(Basis) X:\Benutzer\xxxxx\Name des aktuellen Verzeichnisses>". 

  • Beachten Sie dass der Befehl activate base auf Powershell nicht funktioniert. Sie müssen zur Eingabeaufforderung wechseln, die cmd ausführt, oder Sie Können das Ganze mit der Eingabeaufforderung anstelle von PowerShell versuchen.

  • Wenn die erforderlichen Pfade
    (path:\to\Anaconda3\;path:\to\Anaconda3\Scripts;path:\to\Anaconda3\Library\mingw-w64\bin;path:\to\Anaconda3\Library\usr\bin;path:\to\Anaconda3\Library\bin) sind für Ihre PowerShell-Umgebung verfügbar, dann brauchen Sie dies nicht
    aktivieren Sie die "Basis" -Umgebung.

14
picklu

In Windows aktiver Stamm (Basis) im Befehl Eingabeaufforderung zuerst von 

activate root

dann 

jupyter notebook
5
Dheeraj

Wenn Sie der PATH-Variablen bereits Anaconda hinzugefügt haben, müssen Sie Folgendes tun

activate base jupyter kernelspec list python -m ipykernel install --user

Es hat für mich funktioniert

2
Akash Desarda

Ich habe Anaconda kürzlich in einem neuen Verzeichnis (von D: bis C :) neu installiert. Nach dem Öffnen und Ausführen von PowerShell (in Windows 10) wurden dieselben Fehler ausgelöst. 

Indem ich der Antwort von @picklu folgte, konnte ich sie temporär vom CMD aus ausführen (durch Ausführen von 'enable base' und dann 'jupyter notebook'). Sogar "root aktivieren" funktionierte anstelle der Aktivierungsbasis. Auch das Ausführen von Conda Prompt, Anaconda Navigator und der Standard-Verknüpfung für Jupyter Notebook funktionierte. Mit diesen Methoden konnte ich jedoch nicht mit dem Ordner beginnen, in dem ich das PowerShell-Fenster geöffnet hatte (mit Strg + Umschalttaste + mouseRightCLick).

Durch den zweiten Teil der Antwort von @picklu konnte ich jedoch die Systemvariable PATH erfolgreich vom alten Laufwerk D: auf das aktuelle Laufwerk C: ändern.

Ich habe folgendes hinzugefügt:

  1. c:\Benutzer\Benutzername\Anaconda3
  2. c:\Benutzer\BENUTZERNAME\Anaconda3\Scripts
  3. c:\Benutzer\Benutzername\Anaconda3\Library\bin
  4. c:\Benutzer\BENUTZERNAME\Anaconda3\Library\usr\bin

dabei ist c:\users\USERNAME\anaconda3 der Installationsort der Anaconda.

1
Hemang

Ich traf das gleiche Problem, wenn ich sklearn importiere. Ich denke, einige Pakete müssen upgrated werden. Deshalb renne ich gerade ( conda update --all ), um alle Pakete aufzuwerten, und es hat endlich funktioniert.

1
Raywall

Wenn wir uns Anaconda FAQ ansehen, können wir feststellen, dass es nicht empfehlenswert ist, Anaconda zum Windows-PFAD hinzuzufügen.

Obwohl es funktionieren sollte, ist es nicht einfach und unkompliziert, alle benötigten Pfade manuell zu verwalten. Zum Beispiel hat keine der Antworten hier zum Zeitpunkt meines Schreibens alle Pfade, die Anaconda auf meiner Maschine hinzufügt. Wir können die Liste mit dem os-Modul bekommen:

Für Python 2:

Python 2.7.15 |Anaconda, Inc.| (default, Feb 21 2019, 11:55:13) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print os.environ['PATH']

Für Python 3:

Python 3.7.2 (default, Feb 21 2019, 17:35:59) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print(os.environ['PATH'])

In meinem Fall habe ich die folgenden Anaconda-Pfade:

C:\Anaconda;
C:\Anaconda\Library\mingw-w64\bin;
C:\Anaconda\Library\usr\bin;
C:\Anaconda\Library\bin;
C:\Anaconda\Scripts;
C:\Anaconda\bin;
C:\Anaconda\condabin;

Und das ist nur für die Basisumgebung. Wenn Sie über zusätzliche Umgebungen verfügen, gibt es für jede davon ähnliche Pfade. Möchten Sie sie wirklich alle hinzufügen, aktualisieren und sicherstellen, dass Sie keine verpasst haben, wenn sich mit der neuen Anaconda-Version etwas ändert?

Das bezweifle ich. Und die gute Nachricht ist, dass Sie nicht müssen. Alle Pfade werden automatisch für Sie konfiguriert, wenn Sie die Umgebung aktivieren.

Es ist möglicherweise nur sinnvoll, den Ordner Scripts zu PATH hinzuzufügen, damit Sie activate ohne vollständigen Pfad ausführen können. Und dann kann es nützlich sein, eine Reihe von .bat/.cmd - Dateien für Python Interpreter oder Jupyter Notebook zu erstellen, um die Aktivierung der Umgebung zu vereinfachen und alles mit einem Befehl zu erledigen.

Zum Beispiel habe ich zwei .cmd - Dateien für Python 2 und Python 3 Interpreter auf meinem Computer:

python.cmd :

@echo off
call activate
python %*

python3.cmd :

@echo off
call activate python37
python %*

Ein Ordner mit diesen Dateien wird PATH hinzugefügt. Wenn ich also den Befehl python oder python3 Ausführe, wird die entsprechende Conda-Umgebung aktiviert und der Interpreter Python gestartet Wenn Sie dem Interpreter cmdline-Parameter übergeben, werden diese ebenfalls korrekt weitergeleitet. Ähnliche Skripte können für Jupyter erstellt werden.

0
wombatonfire