问题标签 [boost-python]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 C++ 函数扩展嵌入式 python 解释器?
如何使用 C++ 代码扩展嵌入式解释器?我已经嵌入了解释器,我可以使用 boost.python 来制作一个可加载的模块(如在共享库中),但我不希望库四处飘荡,因为我想直接与我的 C++ 应用程序交互。对不起,如果我的写作有点不连贯。
c++ - 在 QtCreator 中调试使用 Boost.Python 构建的模块
我有一个用 Boost.Python 构建的模块,我想在 QtCreator(或者可能是 gdb)中调试它。如果可能的话,我更喜欢视觉环境。
c++ - 如何在 C++ 中传递/捕获/响应 Python 的 KeyboardInterrupt?
我有一个用 C++ 编写的简单库,我正在为使用 boost.python 创建一个 Python 包装器。有些函数需要很长时间才能执行(超过 30 秒),我想让它可中断,这样当我在 python 解释器中按 ctrl-d 触发 KeyboardInterrupt 时,我能够以某种方式在 C++ 中响应它。
有没有办法做到这一点?我在 boost.org 或 python.org 上找不到任何有关中断和 boost.python 的信息。
python - 在 Mac 上构建 Boost 和 Exempi
为了安装Python XMP Toolkit,我需要在我的 Mac 上安装 Exempi,但这样做会成为一场真正的噩梦......
经过很多麻烦,我终于用boost成功了,而且很棒
现在我正在尝试使用命令配置 Exempi
但它总是卡在这个:
我已经用谷歌搜索了几天,但我找不到任何有用的东西......以前有人遇到过同样的问题吗?我会为伸出援助之手而死...欢迎每一个提示!
编辑:
我已经做到了port
,现在终于说exempi @2.1.1_0 (active)
.
问题是当我尝试加载 XMP 工具包时,它找不到 exempi,并引发错误,如安装指南中所述:
如果您尚未安装 Exempi,则在
ExempiLoadError
尝试加载 libxmp 时会出现异常。
我能做些什么?
c++ - “卸载”一个 Python 模块和“解除绑定”相关的 API
我有一个嵌入 Python 的程序(通过 Boost.Python),并提供了一个“扩展”框架。我希望通过允许扩展为其 API 加载一组 Python 绑定来统一这两个部分,但是我对如何在卸载插件时“取消注册”这些 API 感到困惑。
这甚至可以用 Python 和 Boost.Python 实现吗?我知道 Lua 和 LuaBind 不可能,因为文档表明不可能“取消绑定”API。
很抱歉这个问题写得这么糟糕,现在是凌晨 2:30,我已经做了一段时间了。;)
c++ - Boost::Python raw_function 返回 void
使用 Boost::Python,包装函数的正常机制与 C++ 函数返回void
. 不幸的是,正常机制也有局限性,特别是在它支持的功能方面。所以我需要使用 boost::python::raw_function 来包装我的函数,但是当我的函数返回时它不会编译void
。这是一个简单的测试用例:
这给出了错误:
/usr/local/include/boost/python/raw_function.hpp: 在成员函数 'PyObject* boost::python::detail::raw_dispatcher::operator()(PyObject*, PyObject*) [with F = void (* )(boost::python::tuple, boost::python::dict)]':
/usr/local/include/boost/python/object/py_function.hpp:94: 从 'PyObject* boost::python::objects::full_py_function_impl::operator()(PyObject*, PyObject*) 实例化 [with Caller = boost::python::detail::raw_dispatcher, Sig = boost::mpl::vector1]'</p>
void.cpp:8:从这里实例化
/usr/local/include/boost/python/raw_function.hpp:36:错误:无效使用无效表达式
目前,我可以通过让我的函数返回一个虚拟值来解决这个问题,但这有点不令人满意。其他人遇到过这个问题吗?
c++ - Boost.Python:指针变量的所有权
我正在使用 Boost.Python 向 python 公开一个 C++ 树类。节点类保存子节点列表并提供方法
Node 类拥有提供的 Node 指针的所有权,并在调用析构函数时删除它的子节点。
我将 add_child 方法公开为:
我的实际问题是:我如何告诉 Boost.Python Node 类拥有子节点的所有权?
因为如果我在 python 中执行以下代码:
节点变量引用的对象在脚本结束时被删除两次。一次是在节点变量被删除时,第二次是在父节点被删除时。
c++ - MSVC - boost::python 静态链接到 .dll (.pyd)
我有一个 VS10 项目。我想构建一些 C++ 代码,以便可以在 python 中使用它。我遵循了boost教程并让它工作了。然而 VS 一直链接 boost-python-vc100-mt-gd-1_44.lib 但它只是一个调用 boost-python-vc100-mt-gd-1_44.dll 的包装器。这就是为什么我需要用我的 .dll(.pyd) 文件复制 .dll。所以我想将 boost:python 静态链接到那个 .dll(.pyd) 文件。但我只是在 VS 或编译器和链接器手册中找不到任何配置选项。最奇怪的是,我有一个使用 boost::filesystem 且配置相同的旧项目,但该项目链接到 libboost-filesystem-*.lib 这是静态库,所以没关系。我已经在谷歌上搜索了几个小时而没有任何成功,这让我发疯了。
感谢您的任何帮助或建议。
java - 用于编写与 Python 交互的非常快速的抽象的语言选择?
我目前有一个用 Python 编写的系统,可以分为后端和前端层。Python 太慢了,所以我想用一种快速编译的语言重写后端,同时将前端保留在 Python 中,以一种允许从 Python 调用后端功能的方式。这样做的最佳选择是什么?
我考虑过 cython,但它非常有限且编写起来很麻烦,而且速度也没有那么快。根据我对 Boost Python for C++ 的记忆,维护语言之间的桥梁非常烦人。有更好的选择吗?
我的主要因素是:
- 执行速度
- 编译速度
- 语言是陈述性的
c++ - CMake:使用静态库的共享库
我正在尝试创建一个链接到静态库的共享库(实际上是一个 Python 模块)。这两个库都是同一个项目的一部分,并使用 cmake 构建。
现在,共享库是这样构建的:
这构建没有错误,但是当我尝试导入 Python 模块时,我得到:
我还有许多以类似方式构建的可执行文件(单元测试),它们运行良好。
我应该补充一点,这是在 Linux 上使用 gcc。