我要做的是用C / C ++编写一个应用程序,允许用户输入一个Python脚本,然后应用程序将解释这个脚本。跑。上述脚本将有一个单独的API,我将在C中实现,然后向用户公开。
有办法做到这一点吗?我在Google上搜索过,但我只找到了创建“扩展”的方法而不是实际的解释器(比如Lua允许)。
答案 0 :(得分:8)
有关Embedding Python in Another Application的文档说:
前面的章节讨论了如何扩展Python,即如何通过将C函数库附加到它来扩展Python的功能。 反过来也可以这样做:通过在其中嵌入Python来丰富您的C / C ++应用程序。嵌入为您的应用程序提供了在Python中实现应用程序的某些功能的能力。比C或C ++。这可以用于许多目的; 一个例子是允许用户通过在Python中编写一些脚本来定制应用程序以满足他们的需求。如果某些功能可以用Python编写,你也可以自己使用它。
特别注意Extending Embedded Python:
到目前为止,嵌入式Python解释器无法访问应用程序本身的功能。 Python API通过扩展嵌入式解释器来实现这一点。也就是说,嵌入式解释器通过应用程序提供的例程进行扩展。
只需阅读我引用的文档,您就应该能够在用C编写的应用程序中实现Python解释器。
答案 1 :(得分:2)
您可以使用Boost Python
从C ++调用Python,反之亦然答案 2 :(得分:1)
如果您感兴趣我最近从第一原则开始为C ++实现嵌入式Python脚本。我创建了一个名为ECS的Python C ++ Python包装器库:Python(使用Python的嵌入式C ++脚本),它允许您将对象从C ++应用程序公开到嵌入式Python解释器以进行交互式脚本编写。它重量轻,使用方便(免费!)。