我正在尝试从Python加载DLL,但得到WindowsError: [Error 126] The specified module could not be found.
import ctypes
my_dll = "C:/smt/toolbox/dlls/NMSim_Libraries.dll"
nmsim = ctypes.cdll.LoadLibrary(my_dll)
当我使用Dependency Walker时,它表示缺少3个依赖项,所有这些依赖项都在路径中: “C:\用户\ skeyel \应用程序数据\本地\连续\ Anaconda2 \ LIB \站点包\ numpy的\芯”
我尝试使用以下方法将此路径添加到系统路径:
import sys
sys.path.append("C:\\Users\\skeyel\\AppData\\Local\\Continuum\\Anaconda2\\Lib\\site-packages\\numpy\\core\\")
但这并没有解决问题。如何让.dll与依赖项进行通信?
注意:
我的计算机上安装了两个Python:随ArcGIS一起提供的2.7.8和Anaconda附带的2.7.11。它在通过Anaconda安装附带的Spyder IDE运行时运行良好。
它在我的笔记本电脑上运行良好(2.7.8和2.7.11)。
我根据以下建议检查和/或尝试了各种各样的事情: WindowsError: [Error 126] The specified module could not be found
3A。 dll存在且dll的路径是正确的,因为当我复制并粘贴完全相同的代码时它适用于一个版本
3B。 DLL和Python都设置为32位(注意:操作系统是64位)。使用import platform
后跟platform.architecture()
会将这两个版本都设为32位。
3c上。我尝试调整sys.path
以在两个安装之间包含相同的路径
3D。我已经尝试os.chdir()
更改为.dll目录,然后只按名称加载dll而没有路径信息
3e中。我已经尝试将列出的缺失依赖项复制并粘贴到与.dll
我尝试复制,粘贴和运行所选答案中的(经过最少修改的)代码:Python | accessing dll using ctypes
以下是完整的追溯:
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
似乎有一些我很想念的简单 - 有人知道它是什么吗?
非常感谢。