【问题标题】:How to get voidptr out of capsule using python cffi?如何使用 python cffi 从胶囊中取出 voidptr?
【发布时间】:2016-01-25 23:49:54
【问题描述】:

有什么方法可以使用 cffi 来提取 capsule 的内容并将其转换为可以发送到 C 代码中的 voidptr 吗?

背景信息——numpy 数组可以给你一个包含一个非常方便的结构的胶囊,即PyArrayInterface。我认为 PyPy 尚不存在胶囊,所以答案可能是否定的,但我相信未来包含适用于所有 python 版本的胶囊,所以我希望答案是肯定的 :)。

【问题讨论】:

    标签: python-c-extension python-cffi


    【解决方案1】:

    我不这么认为。 Capsules 是一些 CPython C 扩展模块传递指针的一种方式;通常,在两个不同的 C 扩展模块之间。如果你用 CFFI 版本替换这些模块之一,你就会松懈:没有官方的方法可以从 Python 中获取“void *”值,不管有没有 CFFI。看起来这将是一个有效的增强。随时在此处提出功能请求:

    https://bitbucket.org/cffi/cffi/issues?status=new&status=open

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 2017-11-03
      • 2020-01-01
      • 2012-01-25
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多