2016-08-22 3 views
2

ich eine DLL von Python zu laden bin versucht, aber WindowsError: [Error 126] The specified module could not be found.DLL Setzen Sie sich mit Abhängigkeiten kommunizieren

import ctypes 
my_dll = "C:/smt/toolbox/dlls/NMSim_Libraries.dll" 
nmsim = ctypes.cdll.LoadLibrary(my_dll) 

, wenn ich Dependency Walker verwendet, heißt es, dass 3 Abhängigkeiten fehlen, von denen alle auf dem Weg sind: "C: \ Benutzer \ skeyel \ AppData \ Local \ Continuum \ Anaconda2 \ Lib \ site-packages \ numpy \ core"

ich habe versucht, diesen Weg zu dem Systempfad hinzugefügt werden:

import sys 
sys.path.append("C:\\Users\\skeyel\\AppData\\Local\\Continuum\\Anaconda2\\Lib\\site-packages\\numpy\\core\\") 

aber das hat das Problem nicht gelöst. Wie bekomme ich die .dll, um mit den Abhängigkeiten zu kommunizieren?

HINWEISE:

  1. Es gibt zwei Python-Installationen auf meinem Computer: 2.7.8, die mit ArcGIS und 2.7.11, die mit Anaconda ausgeliefert ausgeliefert. Es läuft gut, wenn es durch die Spyder-IDE läuft, die mit der Anaconda-Installation geliefert wurde.

  2. Es läuft gut auf meinem Laptop (sowohl 2.7.8 und 2.7.11).

  3. Ich habe überprüft und/oder versucht, eine Vielzahl von Dingen, basierend auf den Rat von: WindowsError: [Error 126] The specified module could not be found

    3a. Die DLL existiert und der Pfad zur DLL ist korrekt, da es für eine Version funktioniert, wenn ich den exakt gleichen Code kopiere und einfüge

    3b. Die DLL und Python sind beide für 32 Bit eingerichtet (Anmerkung: das Betriebssystem ist 64 Bit). Mit import platform gefolgt von platform.architecture() gibt beide Versionen als 32-Bit.

    3c. Ich habe versucht, sys.path zu justieren, um die gleichen Wege zwischen den zwei Installationen zu enthalten

    3d. Ich habe versucht, os.chdir() in das DLL-Verzeichnis zu ändern, und dann nur die DLL mit Namen ohne Pfadinformationen laden

    3e. Ich habe versucht, das Kopieren und Einfügen der genannten fehlenden Abhängigkeiten in den gleichen Ordner wie die DLL-

  4. Ich habe versucht, Kopieren, Einfügen und Ausführen des (minimal modifiziert) Code aus ausgewählten Antwort hier: Python | accessing dll using ctypes

Hier Zurückverfolgungs ist voll:

Runtime error 
Traceback (most recent call last): 
File "<string>", line 1, in <module> 
File "C:\Users\skeyel\AppData\Local\Continuum\Anaconda2\Lib\ctypes\__init__.py", line 443, in LoadLibrary 
    return self._dlltype(name) 
File "C:\Users\skeyel\AppData\Local\Continuum\Anaconda2\Lib\ctypes\__init__.py", line 365, in __init__ 
    self._handle = _dlopen(self._name, mode) 
WindowsError: [Error 126] The specified module could not be found 

es scheint, wie es ist etwas einfach, dass ich fehle - wer weiß, was es ist?

Vielen Dank.

+0

Beachten Sie, dass 'sys.path.append' fügt den als Argument angegebenen Pfad nicht an die Umgebungsvariable __PATH__ an, sondern an den Suchpfad des Moduls _Python_ (__PYTHONPATH__). Probieren Sie 'os.environ [" PATH "]' oder besser noch die Variable __PATH__, bevor Sie den Interpreter starten. – CristiFati

Antwort

Verwandte Themen