问题标签 [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.
c++ - 从 C++ 调用 Python 函数
我正在尝试从 C++ 实现调用 Python 函数。我以为可以通过函数指针来实现,但似乎不可能。我一直在使用boost.python
来实现这一点。
假设在 Python 中定义了一个函数:
现在我需要将此函数传递给 C++,以便可以从那里调用它。如何在 C++ 端编写代码boost.python
来实现这一点?
c++ - Boost::Python 为具有继承的类绑定
我试图弄清楚一些自动生成的(使用 Pyste)boost::python 代码有什么问题,但到目前为止还没有运气。
有 C++ 库 Magick++,它提供了两个类,Magick::Drawable
以及Magick::DrawableRectangle
:
https://www.imagemagick.org/subversion/ImageMagick/trunk/Magick++/lib/Magick++/Drawable.h
这些用作以下参数Image.draw()
:
https ://www.imagemagick.org/subversion/ImageMagick/trunk/Magick++/lib/Magick++/Image.h
我正在尝试为它制作 python 绑定,所有类都有自动生成的包装器,
http://bitbucket.org/dan.kluev/pythonmagick/src/65d45c998ef3/src/_Drawable.cpp
http://bitbucket.org/dan.kluev/pythonmagick/src/65d45c998ef3/src/_DrawableRectangle.cpp
http://bitbucket.org/dan.kluev/pythonmagick/src/65d45c998ef3/src/_Image.cpp
问题是,由于从 DrawableBase 到 Drawable 的间接类转换,这些包装器不起作用:
有没有比在 C++ 中编写我自己的 draw() 包装器更好的方法来处理这个问题,它将 PyObject 转换为 Drawable?
c++ - 使用 boost.python 时 c++ 流有什么问题?
更新 2:我不确定为什么这仍然被赞成(2014 年 3 月)。自从我多年前问过这个问题以来,这似乎已经解决了。确保您使用的是最新版本的 boost。
更新:也许需要初始化 C++ 流以格式化数字,并且在 Python 中加载共享库时不会发生初始化?
我打电话
在通过 boost.python 导出到共享库的方法中。它不打印任何东西,但如果我这样做
有用。
这很重要,因为我想这样做:
我通过这样做暴露了这一点:
但是当我str
在伯努利对象上调用python中的方法时,我什么也得不到。我怀疑更简单的 cout 问题是相关的。
python - 在 Mac 上使用 C++ 流序列化数字会导致 boost.python 崩溃
我认为我的链接有问题(我在 Mac 上运行,并且不得不将库更改为 MODULE?)。这是我所拥有的:
CMakeLists.txt
教程.cpp
一个.py
运行 a.py 会崩溃,除非ostr << 1 << "\n";
被注释掉或替换为ostr << "1" << "\n";
!
构建并运行:
堆栈跟踪(在做之后gdb --args python a.py
):
python - boost.python 参数类型不匹配(numpy.int64 -> int)
我遇到了这个问题:
似乎足够接近?
在做了一些替换之后,似乎中间的论点是问题所在。如何将 numpy.int64 转换为 int?
c++ - 有什么方法可以使用 Boost.Python 将从 PIL 加载的图像传递给 C++ 函数?
我正在尝试制作一个包装器以在 Python 中使用 C++ 类,但我找不到一种方法来传递我已经加载到我的 Python 程序中的这个图像。
我可以将路径传递给图像并再次将其加载到 C++ 函数中,但这不是我想要的解决方案。
xcode - Xcode上boost python的链接器问题
我已经下载了 boost 1.45.0,在我的 mac 上安装了 Python 3.1.3。我成功地使用 Python 构建了 Boost。为此,我必须编辑我的“project-config.jam”并添加“使用 python:3.1:/Library/Frameworks/Python.framework/Versions/3.1;” 进去。
在这一点上,一切似乎都很好。
现在,当我尝试在 xcode 项目中使用此库时,出现链接错误:
未定义符号:“boost::python::objects::make_nurse_and_patient(_object*, _object*)”,引用自:_object* boost::python::with_custodian_and_ward_postcall<0ul, 1ul, boost::python::default_call_policies>:: postcall<_object*>(_object* const&, _object*) in libFluxCore.a(Python.o) "boost::python::objects::enum_base::enum_base(char const*, _object* ( )(void const ), void* (*)(_object*), void (*)(_object*, boost::python::converter::rvalue_from_python_stage1_data*), boost::python::type_info, char const*)”,引用自:沙箱: libFluxCore.a(Python.o) 中的 :BindComponentState()
还有更多...
路径和库在我的项目中设置得很好。
有人知道会发生什么吗?谢谢。
python-3.x - Boost Python 示例失败了两次
只有我一个人尝试使用以下组合: boost_1_45_0, MSVC 10, Python31 吗?
我发现来自 boost (boost_1_45_0\libs\python\example\quickstart\embedding.cpp) 的基本示例既没有编译(我找到了如何修复它,见下文)也没有工作。编译时问题:
我发现正确的名称不是initembedded_hello而是init_module_embedded_hello。所以我的第一个问题是关于这个重命名我是对的吗?
第二个问题是SystemError: NULL result without error in PyObject_Call
在导入我声明的模块时:
注释掉导入表明内部 python 的模块(如 io)工作正常。那么第二个问题导入有什么问题?
任何帮助,将不胜感激!
c++ - Python对象到C++指针问题
这是我的第一篇文章 :)。我可以将 python 扩展对象转换为 C++ 指针,但我有一个问题。首先,我将向您展示我的代码,然后我将解释问题所在。
这是我的课:
增强包装:
Python代码(hello.py):
和主文件:
当我运行我的应用程序时,我可以在屏幕上看到“这是一个 Hello World !!!” 正如我所料。那么,有什么问题???假设我将 python 代码更改为:
然后,当我再次运行我的应用程序时,它崩溃了,因为我在该行中遇到了一个错误:
因为base是NULL。
更准确地说,错误是“访问冲突读取位置 0xblablabla”。当我调试时,调试器在函数处停止(我认为是 Boost 或 Python 代码)
你怎么看???
python - 复制 boost.python 对象
我有一些 boost python 类,我在 python 中实例化它们。我想复制它们。所以,如果我有
我想要做
但是如果我不知道 p 的类型怎么办?我试图这样做:
但是python说它不能腌制p。
将 clone() 函数添加到伯努利的界面是我唯一的解决方案吗?或者我可以以某种方式自动生成该方法吗?可以使 copy.deepcopy 与 Boost.python 对象一起使用吗?