2011-08-16 2 views
3

"Rblas.dll"에 의존하는 공유 라이브러리 "R.dll"을로드하려고합니다. 둘 다 같은 디렉토리에 있습니다. 내가하는 ctypes와 (공유 라이브러리를로드하는 파이썬 모듈)Windows에서 ctypes : dll을 찾을 수 없음

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

을 R.dll를로드 할 때 나는 "Rblas.dll는"발견되지 없다는 오류 메시지가 표시됩니다.

어떻게해야합니까? 두 디렉토리를 같은 디렉토리에 두는 것으로 충분하다고 생각했습니다.

답변

4

dll이 위치한 경로를 % PATH % 환경 변수에 추가해야 할 수도 있습니다. R.DLL이 명시 경로를 사용하여로드하는 동안 RBLAS.DLL에 대한 검색이 여전히 해당 위치의 % PATH %를 검색 중입니다. Windows 수준의 작업이므로 파이썬에서 인터셉트 및 수정하는 (쉬운) 방법이 없습니다. 따라서 % PATH %를 변경해야합니다.

번갈아 가며 원하는 디렉토리에 임시로 os.chdir을 넣고 dll을로드 한 다음 dll이로드 된 후 원래 값 os.getcwd을 복원 할 수 있습니다.