【问题标题】:How do I pass C structure into Python when embedding a Python module in a C program在 C 程序中嵌入 Python 模块时,如何将 C 结构传递给 Python
【发布时间】:2015-03-26 01:12:24
【问题描述】:

我有一个可用的 C 程序,现在我正在嵌入一个实现特定功能的 python 脚本。

问题是,传递给 Python 的参数是用 C 定义的复杂(我的意思是嵌套)C 结构。我希望解决方案能够轻松地进行两种通信方式:

1.用C语言创建结构,并将其传递给Python。让 Python 做一些修改。

2.在 Python 中创建结构。并将其传回给 C。

我正在尝试“SWIG”为结构生成一些包装器,以及一些使用 SWIG for Python 的辅助函数,以便它可以返回结构的一些嵌套部分,以便我可以轻松地通过 Python 访问结构。

这是一个很好的解决方案,还是我可能会错过一些非常简单的解决方法?

【问题讨论】:

  • 这并不容易,你需要一个PyTypeObject,特别是tp_members搜索python的c api文档以获取更多信息。
  • 根据我的经验,SWIG 应该能够以您“期望”的方式处理任意嵌套的结构。让它工作有什么具体问题吗?
  • @brunobeltran0 暂时没有,因为我才刚开始。但是除了onelink,我没有找到很多类似的作品,所以我很担心我做的方向。还是谢谢你:)

标签: python c structure swig mixed-programming


【解决方案1】:

根据我的经验,SWIG 应该能够以您“期望”的方式处理任意嵌套的结构。 – brunobeltran0

【讨论】:

    猜你喜欢
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多