c++ - 使用 c++ 对象的全局实例扩展嵌入式 python 解释器

标签 c++ python boost-python

我有课

class A {
  A(SomeClass* ptr);
  do_something();
};

我想在使用 boost-python 的嵌入式 python 解释器中使用

到目前为止,我已经设法通过 BOOST_PYTHON_MODULE 创建了一个 python 模块。并创建了一个 class_<A>带有接受 SomeClass 指针的构造函数。

现在我想扩展解释器,以便每当调用某些 python 代码时都有此类的实例(名为 an_a),以便以下 python 代码有效:

#preferably no imports here.
an_a.do_something()

我的问题有两方面,我需要在使用解释器之前用 Python 或 C++ 构造这个对象,并且我需要让脚本的编写者可以使用这个对象。我在找到如何在我能找到的文档中确切地执行此操作时遇到了一些问题。

最佳答案

我最近需要做这件事。我也考虑过(并使用过)Boost.Python,但就我个人而言(尽管我非常喜欢 Boost),我发现不得不拖入一半的 Boost 库来获得这一特性太过分了。

因此,如果您有兴趣,我最近在名为 ECS:Python 的 Python 包装器库中根据第一原理为 C++ 实现了嵌入式 Python 脚本。 ECS:Python(使用 Python 的嵌入式 C++ 脚本)专为希望将对象从 C++ 应用程序公开到嵌入式 Python 解释器以进行交互式脚本编写的 C++ 开发人员而设计。

它是免费的 (BSD) 和开源的: http://sourceforge.net/projects/ecspython

关于c++ - 使用 c++ 对象的全局实例扩展嵌入式 python 解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660542/

相关文章:

python - 将日历表格式化为日期时间数据框

python - 我们如何在PE文件中的IMAGE_IMPORT_BY_NAME STRUCT中获取提示?

c++ - 使用 boost.python 公开 std::vector<double>

C++异常处理错误输出

c++ - 如何禁用特定的 IBM XL C++ 编译器警告?

c++ - 每行读取 int 并显示百分比

Python 邮件在 Outlook 主题行中放置不明空间

c++ - 共享库导致段错误

c++ - 如何解决 Boost.Python 中的 __imp___Py_NoneStruct 错误?

c++ - 使用 boost 将 C++ 对象传递给 python