파이썬 3 확장 모듈을 C로 작성했지만 파이썬에서 가져 오기를 시도 할 수 없습니다.파이썬 3에서 기본 가져 오기 시도 표시
어떤 공유 라이브러리 (Linux의 경우 .so)가로드하려고 시도하고 실패한 이유를 파이썬이 인쇄하도록 할 수있는 방법이 있습니까?
슬프게도 내가 읽은 모든 문서는 간결한 방식으로 기본 가져 오기 절차를 설명하기 때문에 실제로 도움이되지 않습니다. 내가 뭘하려
은 다음과 같습니다 항상 Load shared object
를 인쇄
ctypes.CDLL("libmydep1.so")
ctypes.CDLL("libmydep2.so")
try:
import my_main
print("Load python")
except:
ctypes.CDLL("libmylib.so")
print("Load shared object")
.
libmylib.so
에는 파이썬 엔트리 포인트가 있지만 파이썬 3 확장으로로드하는 것은 작동하지 않는 것처럼 보입니다. 공유 라이브러리로로드해도 작동하지 않습니다.
편집 :
파이썬은 리눅스 규칙을 준수하지 않습니다. lib 디렉토리에서는 libmylib.so
이 아니라 mylib.so
으로 이름이 지정됩니다.
my_main.so
이라고하면 my_main
만로드됩니다. 그래서 성가신.
이것은 내 .so가 전혀로드되지 않는다는 것을 알기 때문에 유용합니다. 아직도 파이썬이로드하려고 시도하고있는 이유와 왜 그리고 왜 실패했는지를 알 수있는 기본 도구가 부족합니다. – abergmeier