boost-python相关内容

Boost::Python- 可以从 dict 自动转换 -->标准::地图?

我有一个 C++ 类,它的成员函数可以接受从小到大的参数.让我们将这些参数命名为 a-f.所有参数都有默认值.作为我正在处理的 python 项目的一部分,我想将这个类公开给 python.目前,成员函数看起来像这样: class myClass {上市://构造函数 - 将 a-f 设置为默认值.void SetParameters(std::map ..
发布时间:2022-01-13 08:22:05 C/C++开发

将 Python 列表输入到使用 Boost Python 接收向量的函数中

我有一个带有签名的函数: function(std::vectorvector); 我已经公开了它,但它不包含 Python 列表.我查看了其他 SO 答案,其中大多数涉及更改函数以接收 boost::python::lists,但我不想更改函数.我想我可以使用 vector_indexing_suite 围绕这个函数编写一个简单的包装器,但是我有很多这种形式的函数,我不想为每个单独的函数编写 ..
发布时间:2022-01-10 14:23:40 其他开发

如何在函数和成员函数上编写包装器,在包装函数之前和之后执行一些代码?

我正在尝试编写一些包装类或函数,以允许我在包装函数之前和之后执行一些代码. float foo(int x, float y){返回 x * y;}BOOST_PYTHON_MODULE(测试){boost::python::def("foo", );} 理想情况下,包装器应该是通用的,适用于具有任何签名的函数和成员函数. 更多信息: 我正在寻找一种 ..
发布时间:2022-01-04 15:34:27 C/C++开发

从 C++ 调用 Python 函数

我正在尝试从 C++ 实现调用 Python 函数.我以为可以通过函数指针来实现,但似乎不太可能.我一直在使用 boost.python 来完成这个. 假设在 Python 中定义了一个函数: def 回调(arg1, arg2):#做一点事返回一些东西 现在我需要将此函数传递给 C++,以便可以从那里调用它.我如何使用 boost.python 在 C++ 端编写代码来实现这一点? ..
发布时间:2022-01-03 08:23:20 C/C++开发

如何使用 boost.python 中的 -fPIC 编译静态库

默认情况下,libboostpython.a 是在没有 -fPIC 的情况下编译的.但我必须制作一个 python 扩展,它是一个动态库,带有 -fPIC 链接到静态库.如何使用 boost.python 中的 -fPIC 编译静态库 (libboostpython.a)? 解决方案 您可以使用以下几个选项: 从源代码编译 boost 并将额外的编译器选项传递给 bjam.例如.bj ..
发布时间:2021-12-24 15:47:59 C/C++开发

将 C++ 类实例暴露给 Python 嵌入式解释器

我正在寻找一种将 C++ 类实例公开给 Python 嵌入式解释器的简单方法. 我有一个 C++ 库.这个库是包装好的(暂时使用 swig),我可以从 python 解释器中使用它 我有一个 C++ 主程序,它从我的库中实例化了一个 Foo 类并嵌入了一个 python 解释器 我想将我的 C++ 世界实例 Foo 暴露给 python 世界(并被视为一个 Foo 类). 这可 ..
发布时间:2021-12-24 15:30:36 C/C++开发

Boost 和 Python 3.x

boost.python 如何处理 Python 3?只有 Python 2 吗? 解决方案 较新版本的 Boost 应该适用于 Python V3.x.这种支持是在很久以前添加的,我相信在 2009 年成功的 Google Summer of Code 项目之后. 将 Python V3 与 Boost 结合使用的方法是通过添加以下内容来正确配置构建系统: using pytho ..
发布时间:2021-12-24 15:28:31 C/C++开发

使用 Boost Python 将 Python 列表输入到一个接受向量的函数中

我有一个带有签名的函数: function(std::vector vector); 我已经公开了它,但它不包含在 Python 列表中.我已经查看了其他 SO 答案,大多数都涉及更改函数以接收 boost::python::lists,但我不想更改该函数.我想我可以使用 vector_indexing_suite 围绕这个函数编写一个简单的包装器,但我有很多这种形式的函数,并且不想为每个函数 ..
发布时间:2021-12-24 15:11:19 其他开发

boost.python 不支持并行?

我正在尝试使用 boost.python 将一段 C++ 代码包装到 python lib 中,但是,我发现多个实例不能同时运行: 代码(C++): class Foo{上市:Foo(){}无效运行(){整数秒 = 2;clock_t 结束等待;endwait = 时钟 () + 秒 * CLOCKS_PER_SEC ;while (clock() ("test", init()).def ..
发布时间:2021-12-24 15:09:14 C/C++开发

嵌入式 Python 应用程序中的运行时错误 R6034

我正在开发一个使用 Boost.Python 嵌入 Python 解释器的应用程序.这用于运行与主程序交互的用户生成的“脚本". 不幸的是,一位用户在尝试运行脚本时报告了运行时错误 R6034.主程序启动正常,但我认为问题可能是在加载python27.dll时出现的. 我使用的是 Visual Studio 2005、Python 2.7 和 Boost.Python 1.46.1.该 ..

为使用 OpenCV 的 C++ 代码编写 Python 绑定

我正在尝试为一些使用 OpenCV 的 C++ 代码编写一个 python 包装器,但我在将结果(OpenCV C++ Mat 对象)返回给 python 解释器时遇到了困难. 我查看了 OpenCV 的源代码并找到了文件 cv2.cpp,该文件具有转换功能,可以在 PyObject* 和 OpenCV 的 Mat 之间来回执行转换.我使用了这些转换函数,但在尝试使用它们时遇到了分段错误. ..
发布时间:2021-12-10 21:04:18 C/C++开发

从 NumPy 数组到 Mat (OpenCV) 的 C++ 转换

我正在围绕 ArUco 增强现实库(基于 OpenCV)编写一个薄包装.我正在尝试构建的界面非常简单: Python 将图像传递给 C++ 代码; C++ 代码检测标记并将它们的位置和其他信息作为字典元组返回给 Python. 但是,我无法弄清楚如何在 Python 中表示图像以将其传递给 C++.对于 GUI 和相机管理,我将使用 PyQt,所以最初它将是 QImage,但我不能简 ..
发布时间:2021-12-10 20:59:10 C/C++开发

如何从 boost::python 返回 numpy.array?

我想从 C++ 代码中返回一些数据作为 numpy.array 对象.我查看了 boost::python::numeric,但它的文档非常简洁.我可以举个例子吗?返回一个(不是很大)vector 到 python?我不介意复制数据. 解决方案 更新: 在我的原始答案中描述的库 (https://github.com/ndarray/Boost.NumPy) 自 Boost 1.63 起已 ..
发布时间:2021-11-18 02:07:35 C/C++开发

在 boost python 中使用 unique_ptr - boost::shared_ptr 有效,但 unique_ptr 无效

这可能是同一个问题 Boost Python No to_python for std::unique_ptr 但是,我还没有看到回复,并且不清楚这是“boost-python"问题还是由于我对“std::unique_ptr"的特殊使用我试图弄清楚为什么在使用“std::unique_ptr []"时更改从 boost::shared_ptr 派生的类会破坏编译 下面是我的 b ..
发布时间:2021-09-14 18:42:28 C/C++开发

包装矩阵乘法运算符*重载

我一直在尝试包装要在python中调用的矩阵c ++类.我希望能够使用丰富的乘法运算符(即m1 * m2)来调用矩阵乘法,但是到目前为止,我们仅设法绑定了一个函数 m3 =乘法(m1,m2)python我能够通过派生类获得相同的功能: class mat4(mylib.mat4):def __init __():super().__ init __(自己)def __mul __(自己,其他) ..
发布时间:2021-04-16 18:30:42 C/C++开发

编译时将错误与Boost.python链接

正在尝试构建受这里 我的初衷是能够从Python内部调用C ++代码.我只是运行Boost文档中的示例以实现此目标. 这是我的makefile文件 CXX:= g ++CXX_FLAGS:= -Wall -Wextra -std = c ++ 17 -ggdbBIN:=箱SRC:= src包含:= incLIB:= libBOOST_ROOT:=/home/eicossa/repo ..
发布时间:2021-04-16 18:30:39 C/C++开发