0
我在C中編寫了一個Python 3擴展模塊,但似乎無法讓Python導入它。在python3中顯示本地導入嘗試
有什麼辦法讓Python打印出它試圖加載的共享庫(.so),以及它爲什麼會失敗?
可悲的是,我讀的所有文檔都沒有真正幫助,因爲沒有一個簡明的描述本地導入過程。
我想的是:
ctypes.CDLL("libmydep1.so")
ctypes.CDLL("libmydep2.so")
try:
import my_main
print("Load python")
except:
ctypes.CDLL("libmylib.so")
print("Load shared object")
總是打印Load shared object
。
libmylib.so
包含python入口點,但加載它作爲Python 3擴展似乎不工作,雖然作爲共享庫加載。
編輯:
Python不兌現linux的約定。所以對於一個lib,你不會將其命名爲libmylib.so
,而是mylib.so
。
更糟糕的是,它只加載my_main
,當時這樣命名爲my_main.so
。很煩人。
這只是有用的,所以我知道它根本不加載我的.so。儘管如此,我還是缺乏基本的工具來查看python試圖加載的內容以及爲什麼以及爲什麼會失敗。 – abergmeier