标签: 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”。
我该怎么办?我认为将两个库放在同一个目录中就足够了。
答案 0 :(得分:4)
您可能需要将dll所在的路径添加到%PATH%环境变量中。当R.DLL使用显式路径加载时,搜索它的请求RBLAS.DLL仍在搜索%PATH%的位置。由于这是Windows级操作,因此没有(简单)方法从python中拦截和修改它...因此需要更改%PATH%。
尽管如此,您可以暂时os.chdir到所需目录,加载dll,并在加载dll后恢复os.getcwd的原始值。
os.chdir
os.getcwd