이 주제에 대한 다른 게시물을 살펴 봤지만 라이브러리의 디렉토리로 직접 변경하거나 sys와 같은 절대 경로를 명시 적으로 지정하지 않고이 작업을 수행하는 방법이 있는지 궁금합니다. path.append 또는 Windows의 PATH 또는 CLASSPATH 환경 변수를 사용하십시오. 내가 지금하고있는 일은 "jvm.dll"을로드하는 것입니다.ctypes로드 라이브러리가 없습니다
답변
해당 DLL에 종속성이 없으면 ctypes 팩토리에 절대 경로를 전달하여 라이브러리를로드 할 수 있습니다. DLL (당신이 그러나 당신이 원하는 확인할 수 있습니다). 그러나 DLL은 함께 번들로 제공되며 상호 종속성이 있습니다. 가장 확실한 방법은 DLL을 포함하는 디렉토리를 os.environ['PATH']
에 추가하여 OS 라이브러리 로더가 종속 DLL을 자동으로 해결할 수 있도록하는 것입니다. 환경 오염에 대해 걱정할 경우 일시적으로이 작업을 수행 할 수 있습니다.
dll_dir = r'c:\foo\bar\path'
tmp = os.environ['PATH']
os.environ['PATH'] = dll_dir + ';' + tmp
ctypes.LoadLibrary(dll_name)
os.environ['PATH'] = tmp
이 또한 작동하지 않습니다. 실제로 dll을 보유하고있는 PATH에 대한 디렉토리 만 두는 것 (예 : os.environ [ 'PATH'] = r ' "C : \ Program Files (x86) \ Java \ jdk1.7.0_04 \ jre \ bin \ client " ') 작동하지 않습니다. 반면에 os.chdir ('C :/Program Files (x86) /Java/jdk1.7.0_04/jre/bin/client')가 작동합니다. – Cenoc
경로를 완전히 바꾸지 않고 기존 경로의 맨 앞에 추가하려고 했습니까? 추가 PATH 항목이 필요할 수 있습니다. – Rakis
나는 행운이 없었다. 나는 그것이 전혀 이상하지 않은 PATH를 전혀 사용하지 않을 수도 있다고 생각합니다. – Cenoc
- 1. -lboost_system에 라이브러리가 없습니다.
- 2. .DLL 라이브러리가 없습니다.
- 3. -lXXX 라이브러리가 없습니다.
- 4. ios5에 사진 라이브러리가 없습니다.
- 5. -lOAuthConsumer_iPhone에 라이브러리가 없습니다.
- 6. ld : -llinphone에 라이브러리가 없습니다.
- 7. ld : -lidn에 라이브러리가 없습니다.
- 8. erlang을위한 성숙한 yaml 라이브러리가 없습니다
- 9. Windows Forms 컨트롤 라이브러리가 없습니다.
- 10. JRE 시스템 라이브러리가 없습니다. tools.jar
- 11. ld : 라이브러리가 -lgcc_s.10.5에 없습니다. Xcode
- 12. C++ 부스트 라이브러리가 파일을 열 수 없습니다.
- 13. "처리 중"사본에 "processing.serial"라이브러리가 없습니다.
- 14. 내 .jar을 실행하려고하면 java.library.path 예외에서 라이브러리가 없습니다.
- 15. modbus Java 라이브러리가 필요합니다.
- 16. 포트란에 표준 라이브러리가 있습니까?
- 17. Android 동적 연결 라이브러리가 주 프로그램의 심볼을 해결할 수 없습니다.
- 18. ld : jlkins를 사용하여 빌드 할 때만 -lLIBRARY_NAME에 라이브러리가 없습니다.
- 19. OpenMPI 라이브러리가 설치되었지만 Linux에서 mpicc 명령을 사용할 수 없습니다.
- 20. jsf with eclipse : 참조 된 프로젝트 라이브러리가 없습니다.
- 21. Visual Studio 2012 이미지 라이브러리가 없습니다. 어디서 구할 수 있니?
- 22. Unitt 웹 소켓 라이브러리가 iOS의 소켓을 조작 할 수 없습니다.
- 23. XNA 라이브러리가 등록되지 않습니다. 프로젝트를 컴파일하거나 디버그 할 수 없습니다.
- 24. Google Adword PHP 클라이언트 라이브러리가 호스트에 연결할 수 없습니다.
- 25. cygwin에 mysql을 설치하지 못했습니다. curses/termcap 라이브러리가 없습니다.
- 26. JPGraph 라이브러리가 작동하지 않습니까?
- 27. Netflix 비디오 라이브러리가 있습니까?
- 28. System.Scripting.Actions 라이브러리가 필요합니다 - DynamicObject
- 29. JavaScript 라이브러리가 서로 충돌합니다.
- 30. C# "서비스"라이브러리가 있습니까
가능한 [Python | ctypes를 사용하여 dll에 액세스] (http://stackoverflow.com/questions/7586504/python-accessing-dll-using-ctypes) – Trilarion