【问题标题】:calling Python from C从 C 调用 Python
【发布时间】:2015-07-01 19:03:28
【问题描述】:

我有一个 C 代码,我需要在开始时进行一些简单的文件操作以进行初始化,这对于 Python 来说很简单。我想知道是否有办法从 C 调用 python。我熟悉从 Python 调用 C,但相反,我读过 Cython 可以做到,但我对如何做感到很困惑。

python 代码必须接受输入一些字符串,进行一些文件操作并返回一些双精度和数组。

【问题讨论】:

  • 旁注:您应该澄清您所谈论的标准版本。术语“ANSI-C”主要用于 C89/C90(与语言/库相同);否则为 ISO-C 提及标准年份:C90/C99 或 C11(当前且唯一有效的标准版本)。
  • 只是出于好奇:为什么不全部使用 Python 呢?通常,人们会在 Python 中实现更高级别的代码,而在 C 中只实现一些时间关键的东西。
  • 我正在从一个更大的程序中调用这个 C 函数,该程序已经由其他人在 Fortran90 中编写。这个函数经常被调用,这就是它用 C(或 Fortran,但我碰巧用 C 编写)编写的原因。初始化步骤当然不需要优化。

标签: python c cython


【解决方案1】:

从 C 调用 Python 非常简单。首先,您需要安装 python-dev 包以访问 Python.h 文件。然后你就可以访问python api了。这是 api 的参考:https://docs.python.org/2/c-api/intro.html。特别注意嵌入 Python 部分。基本流程是调用 Py_Initialize() 执行你的 python 代码,然后调用 Py_Finalize()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2011-11-14
    • 1970-01-01
    • 2023-04-03
    • 2013-08-30
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多