从Python调用C库

从Python调用C库,python,Python,我找到了一个C(?)中的库,我想从Python中尝试: 我想看看是否可以将压缩文件存储在磁盘上,并将其解压缩到内存中,以加快完整文件的读取速度 我不熟悉使用Python的外部代码。如何创建一个使用该库的Python函数,并且尽可能少地增加开销 (我将使用Windows或Linux)一种方法是将库编译成动态库(Windows或Linux上的.so.dll)并使用ctypes()访问它。一种方法是将库编译成动态库(Windows或Linux上的.so.dll)并使用ctypes()访问它。幸运的是

我找到了一个C(?)中的库,我想从Python中尝试:

我想看看是否可以将压缩文件存储在磁盘上,并将其解压缩到内存中,以加快完整文件的读取速度

我不熟悉使用Python的外部代码。如何创建一个使用该库的Python函数,并且尽可能少地增加开销


(我将使用Windows或Linux)

一种方法是将库编译成动态库(Windows或Linux上的.so.dll)并使用ctypes()访问它。

一种方法是将库编译成动态库(Windows或Linux上的.so.dll)并使用ctypes()访问它。

幸运的是,Python附带了一个名为FFI的内置FFI。它同时适用于Linux和Windows,并且有很多教程可以学习如何使用它


请注意,您需要事先将库编译成共享库(Windows中是DLL,Linux中也是如此)。

幸运的是,Python自带了名为。它同时适用于Linux和Windows,并且有很多教程可以学习如何使用它

请注意,您需要事先将库编译成共享库(Windows中是DLL,Linux中也是如此)。

提供了一个通过FFI实现这一点的简单途径,另外还可以使用类似SWIG的东西在更低的层与python库进行接口

我建议您生成一个小的微基准测试程序来记录这样一个实验前后的性能,这样您就可以在选择是否要长期使用ctypes或python swig代码而不是在python中本机运行时使用具体的值,您可以在c-python或其变体中进行试验(比如pypy)

提供了一条通过FFI实现这一点的简单途径,还可以使用类似SWIG的东西在更低的层与python库进行接口

我建议您生成一个小的微基准测试程序来记录这样一个实验前后的性能,这样您就可以在选择是否要长期使用ctypes或python swig代码而不是在python中本机运行时使用具体的值,您可以在c-python或其变体中进行试验(例如pypy)