【发布时间】:2014-12-22 21:25:47
【问题描述】:
我有一个 C++ 项目,我想给它一个 python-API - 我提供了一个共享库,用户可以将它导入到他的 python 项目中。 C++ 代码解析 CLI,因此我需要将 C++ 端(来自 python-API)argv 作为 char** 传递,而不是作为列表传递。 有什么建议吗?
【问题讨论】:
-
您可以使用
new char*[PyList_Size(l)]分配C 数组,并在其中填充Python 字符串的C 副本,每个都使用strdup(PyString_AsString(PyList_GetItem(l, I)))创建。boost::python可能会提供实现这一点的捷径,但这将是一般的想法。 -
Tnx man,但是我对python的C-API不熟悉,也没有完全理解你的解释......如果你有时间并且可以提供一个小代码示例,那就太棒了跨度>
-
我现在发布了一个答案,其中包含使用纯 Python/C API 实现上述建议的代码。应该很容易适应
boost::python方言,或者您可以保持原样。
标签: python boost command-line-interface boost-python argv