用c++对象的全局实例扩展嵌入式python解释器
Extending an embedded python interpreter with global instance of a c++ object
我有一个类
class A {
A(SomeClass* ptr);
do_something();
};
我想在使用boost python 的嵌入式python解释器中使用
到目前为止,我已经成功地通过BOOST_PYTHON_MODULE
创建了一个python模块,并使用接受SomeClass指针的构造函数创建了class_<A>
。
现在,我想扩展解释器,以便每当调用某些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++扩展强制多个python进程共享同一内存
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 扩展光电二极管探测器以支持多个传感器
- C++中的VLA,扩展名为std=C++11
- OpenGL 和 GLM 矩阵无法正确扩展,总是按比例缩小
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- C++返回 Numpy 数组的 Python 扩展模块
- 扩展可变参数模板中的变量名称
- 扩展C++生成的代码的模板参数类型名称
- 我想通过带有C++和Python的插件创建一个可扩展的应用程序
- VSCode IntelliSense无法识别SDL框架的SDL_image扩展库
- 将元组类型扩展为可变参数模板?
- 如何按文件扩展名引用文件夹中的文件
- HDF5Cpp 扩展复合数据集超板问题
- MSVC中的宏观扩展问题
- 用c++对象的全局实例扩展嵌入式python解释器
- Firefox 扩展中的无窗口嵌入式 exe
- 带有嵌入式 Python 的 Python 扩展模块调用了错误的库
- 使用嵌入式脚本扩展C++应用程序