我有一些共享对象文件(.so libs),我需要加载到我的Python项目中,该项目将在Ubuntu平台上运行。目标是我有一些已经转换成.so文件的库,现在我需要将它们加载到我的python项目中。有谁能分享一下具体的步骤吗?
cnjp1d6j1#
你可以用ctypes来实现,这很简单。假设你有一个my-library.so,导出了以下C函数:
ctypes
my-library.so
void say_hello(char *name) { printf("Hello, %s!\n", name); }
字符串你可以加载库并像这样从Python调用函数:
>>> from ctypes import cdll, c_char_p >>> mylib = cdll.LoadLibrary('./my-library.so') >>> mylib.say_hello.argtypes = [c_char_p] >>> mylib.say_hello(b"world") Hello, world! >>>
型请注意,前面的./很重要,否则LoadLibrary将在默认库路径中查找,而不是当前文件夹。更多信息请参考ctypes的文档。
./
LoadLibrary
1条答案
按热度按时间cnjp1d6j1#
你可以用
ctypes
来实现,这很简单。假设你有一个
my-library.so
,导出了以下C函数:字符串
你可以加载库并像这样从Python调用函数:
型
请注意,前面的
./
很重要,否则LoadLibrary
将在默认库路径中查找,而不是当前文件夹。更多信息请参考
ctypes
的文档。