我试图加载从Python中的DLL进行沟通,但得到WindowsError: [Error 126] The specified module could not be found.
获取DLL与依赖
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安装:2.7.8与ArcGIS的和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的路径是正确的,因为它适用于一个版本,当我复制和粘贴完全相同的代码时。 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
好像有一些简单的我失踪 - 任何人都知道它是什么?
非常感谢。
请注意'sys.path。append'不会将作为参数给定的路径附加到环境变量__PATH__,而是附加到_Python_的模块搜索路径(__PYTHONPATH__)。尝试使用'os.environ [“PATH”],或者甚至更好,在启动解释器之前设置__PATH__变量。 – CristiFati