使用ctypes用依赖项包装编译库

时间:2014-08-24 17:01:25

标签: python c linux ctypes

我试图使用带有ctypes的名为pvcam(Photometrics虚拟摄像头访问方法)的库。此专有库作为已编译的共享对象(.so文件)与软件用户手册一起分发,适用于C开发。 我想用ctypes包装这个库,所以我可以使用python而不是C. 我试过了

ctypes.CDLL('libpvcam.so.2.7.4.2',mode=ctypes.RTLD_GLOBAL)

然后python抱怨依赖。

OSError: /usr/lib/libpvcam.so.2.7.4.2: undefined symbol: raw1394_new_handle

(我确实安装了libraw1394)根据this,可能必须使用正确的标志正确地重新编译库。作为专有的预编译对象,这是不可能的。 如何将这个.so加载到python中的ctypes?

1 个答案:

答案 0 :(得分:0)

请事先尝试加载所需的库:

ctypes.CDLL('libraw1394.so.X.Y', mode=ctypes.RTLD_GLOBAL)
ctypes.CDLL('libpvcam.so.2.7.4.2', mode=ctypes.RTLD_GLOBAL)