C/C++ Python 解释器

4
我想做的是用C/C++编写一个应用程序,允许用户输入Python脚本,然后该应用程序将解释并运行该脚本。上述脚本将有一个单独的API,我将在C中实现,然后向用户公开。
是否有一种方法可以实现这个?我已经在Google上搜索过了,但只找到了创建“扩展”的方法,而不是实际的解释器(就像Lua一样)。

这绝对是可能的。我不确定如何实现,但我知道你可以在C程序中运行Python解释器。文明4就是这样做的。 :-) - Omnifarious
5
“Binding”可能会影响您的搜索。通常它表示语言之间的某种接口,但是您想要的应该是“嵌入”。 - ssube
@peachykeen谢谢你提醒,也许这就是过去我遇到问题的原因! - user2058002
3个回答

10

嵌入 Python 到其他应用程序 的文档称:

前面的章节介绍了如何扩展 Python,也就是通过将一些 C 函数库附加到 Python 上来扩展 Python 的功能。但是也有另一种可能:在你的 C/C++ 应用程序中嵌入 Python,从而增强你的应用程序。 嵌入式支持使你的应用程序可以使用 Python 来实现一些功能,而不必使用 C 或 C++。这可以用于许多目的;例如,允许用户编写一些 Python 脚本来定制应用程序以满足他们的需求。 如果某些功能可以更容易地使用 Python 编写,你也可以自己使用它。

特别关注扩展嵌入式 Python

到目前为止,嵌入式 Python 解释器无法访问应用程序本身的功能。Python API 允许通过扩展嵌入式解释器来实现这一点。也就是说,应用程序提供了一些例程来扩展嵌入式解释器。

只需阅读我引用的文档,你就可以在使用 C 编写的应用程序中实现 Python 解释器。


2

你可以使用Boost Python在C++和Python之间进行调用。


4
这对于编写 C++ 扩展并使其在继承层次结构中合理参与非常有用。但嵌入 Python 到另一个应用程序中则不太方便。 - Omnifarious

1

如果您感兴趣,我最近从头开始实现了C++的嵌入式Python脚本。我创建了一个名为ECS:Python(嵌入式C++脚本与Python)的C++ Python包装库,它允许您将来自C++应用程序的对象暴露给嵌入式Python解释器进行交互式脚本编写。它非常轻量级且非常易于使用(而且是免费的!)。

http://sourceforge.net/projects/ecspython


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接