首页 > 解决方案 > 在 Python 应用程序中调用自定义 C 子例程

问题描述

我有两个自定义编写的 C 例程,我想将它们用作大型 Python 应用程序的一部分。我不希望用纯 Python(或 Cython 等)重写 C 代码,尤其是为了保持速度。

我可以从我的 Python 代码中使用我的 C 代码的最简洁、最简单的方法是什么?或者,对我来说,包装我的 C 代码以在我的 Python 源代码中使用的最简洁、最简单的方法是什么?

我知道“最干净”和“最简单”会吸引意见,但我真的只需要一些好的选择来使用自定义预先编写的代码,而不是描述如何使用完整的 C 库作为 CPython 扩展的许多其他答案/教程.

编辑:

Cython 和 ctypes 都被推荐了。在我的情况下,哪个是更好的选择?我最初提到的两个例程中的每一个都非常计算密集。它们用于图像计算和重建,所以我的计划是围绕它们的使用构建一个 Python 应用程序(考虑到我在 Python 中已经拥有的其他功能),并根据需要运行 C 代码以进行处理。

标签: pythoncpython-3.xpython-3.5python-c-api

解决方案


使用 cython 包装您的 C 代码。换句话说,使用 Cython 创建一个调用 C 代码的 CPython 扩展。


推荐阅读