Windows上的ctypes:取决于未找到的dll

时间:2011-08-16 14:04:22

标签: python windows dll ctypes

我尝试加载依赖于“Rblas.dll”的共享库“R.dll”,两者都在同一目录中。 当我用ctypes(一个加载共享库的python模块)加载R.dll时

import ctypes
lib = ctypes.CDLL("/path_to_r/bin/i386/R.dll")

我收到一条错误消息,指出找不到“Rblas.dll”。

我该怎么办?我认为将两个库放在同一个目录中就足够了。

1 个答案:

答案 0 :(得分:4)

您可能需要将dll所在的路径添加到%PATH%环境变量中。当R.DLL使用显式路径加载时,搜索它的请求RBLAS.DLL仍在搜索%PATH%的位置。由于这是Windows级操作,因此没有(简单)方法从python中拦截和修改它...因此需要更改%PATH%。

尽管如此,您可以暂时os.chdir到所需目录,加载dll,并在加载dll后恢复os.getcwd的原始值。