본문 바로가기
파이썬

파이썬 ctypes에 대해 런타임시 LD_LIBRARY_PATH 변경

by º기록 2020. 9. 21.
반응형

ctypes가 어디서나 라이브러리를로드 할 수 있도록 런타임에이 환경 변수를 어떻게 업데이트합니까? 나는 다음을 시도했지만 둘 다 작동하지 않는 것 같습니다.

from ctypes import *
os.environ['LD_LIBRARY_PATH'] = "/home/starlon/Projects/pyCFA635/lib"  
os.putenv('LD_LIBRARY_PATH', "/home/starlon/Projects/pyCFA635/lib")  
lib = CDLL("libevaluator.so")

 

해결 방법

 

Python과 같은 프로그램이 실행될 때까지 동적 로더 (ld.so.1 또는 이와 유사한 것)는 이미 LD_LIBRARY_PATH를 읽었으며 그 이후의 변경 사항을 알아 차리지 못합니다. 따라서 Python 소프트웨어 자체가 LD_LIBRARY_PATH를 평가하고이를 사용하여 dlopen () 에 대한 라이브러리의 가능한 경로 이름 또는 사용할 동등한 함수를 빌드하지 않는 한 스크립트에서 변수를 설정해도 효과가 없습니다.

작동하지 않는다고한다면, 파이썬이 가능한 모든 라이브러리 이름을 빌드하고 시도하지 않는다고 가정하는 것이 타당 해 보입니다. 아마도 LD_LIBRARY_PATH에만 의존합니다.

 

참조 페이지 https://stackoverflow.com/questions/856116

 

 

반응형

댓글