问题标签 [pybind11]
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.
class - 多种类型的 PyBind11 模板类
我想使用 PyBind11 来包装一个专门的数组类。但是,该数组有多种形式(每种普通旧数据类型一种)。代码如下所示:
我想到告诉 PyBind11 这些类的唯一方法是通过使用一个非常大的宏为每个 POD 复制上述内容。
有一个更好的方法吗?
python - pybind11:如何将 c++ 和 python 代码打包成一个包?
我正在尝试使用 CMake 和 pybind 11 将现有的 Python 代码和新的 C++ 11 代码打包在一起。我想我缺少一些可以简单地添加到 CMake 脚本中的东西,但在任何地方都找不到:pybind11 示例只有 C++ 代码和没有Python,其他在线资源相当复杂而且不是最新的——所以我只是不知道如何将两种语言的函数打包在一起,并通过Python的import my_package
下线使它们可用......作为一个例子,我已经从 pybind11 克隆了 cmake_example 并在其中添加了一个 mult 函数cmake_example/mult.py
我如何使它与下面的测试一起可见add
并subtract
通过下面的测试?
目前,此测试失败..
谢谢!
c++ - 如何使用 PyBind 和 make 而不是 CMake 在 C++ 中嵌入 Python?
我正在尝试使用 PyBind 在 C++ 中嵌入一些 Python 代码。大多数文档都是关于使用 C++ 扩展 Python,但我对嵌入感兴趣:
在http://pybind11.readthedocs.io/en/stable/advanced/embedding.html上有一个使用 cmake 的简单示例。但是对于我的项目,我必须扩展一个 makefile。
是否可以更改此示例
使用这个 c++ 文件
到带有makefile的版本?
python - 在 C++ 中使用 pybind11 包装器时的段错误
我有一个具有以下结构的示例。
CMakeLists.txt
主文件
现在在运行时
为了让这个模块在这里正确加载,我缺少什么?我已经搜索了文档,特别是构建系统部分,但结果是空的。
在 C++ 的 pybind11 中使用其他包装器时,我似乎也是这种情况。
python - 使用带有 pbr 的自定义构建
我正在尝试将pbr用于具有使用 pybind11 的扩展模块的 python包。有一个pybind11 cmake 示例 repo,展示了如何使用 cmake 从setup.py构建扩展模块。我的问题是:如何将此自定义扩展模块构建到基于 pbr 的 setup.py setup.cfg 中?特别是,如何使用 setup.cfg 中的自定义扩展类 CMakeBuild 和 CMakeExtension?
c++11 - PyBind11 全局级枚举
PyBind11 文档讨论了如何使用enum
here。
显示的示例假定枚举嵌入在一个类中,如下所示:
我的情况不同。我有一个全局enum
值,它的值用于改变几个函数的行为。
我试图像这样注册它:
编译成功并且模块在 Python 中加载,但我没有在模块名称中看到 ModeType。
我能做些什么?
python - 在 cpython 中创建 TZInfo 对象
我目前正在使用 cpython datetime api尝试为Howard Hinnant 的日期库zoned_time 对象编写 pybind11 绑定,为此我必须在 Howard Hinnant 的 TimeZone 和 cpython PyDateTime_TZInfo 之间执行双向转换。
cpython 中的 PyDateTime_CAPI 定义了许多创建 PyDateTime_* 对象的操作;但是,它只定义了 TZInfo 的类型,没有定义创建这些对象的方法。api的实现定义了一个非常基本的时区实现;但是,这不会通过 API 公开。最终,为了对时区对象具有适当的可操作性,需要对 TZInfo 接口进行一些 C++ 实现。我在这里看到的问题是 API 代码依赖于 call_tzinfo_method它正在调用假定在派生 python 类上实现的方法,而不是在接口上实现的方法。从我在这里可以看到,没有办法在 C++ 中实现 TZInfo 对象,这最终将导致无法正确绑定时区感知日期时间对象。有没有办法解决这个问题,或者在当前的 cpython 实现中这根本不可能?
python - Pybind11 用于 C++ 代码,内部结构通过静态工厂方法创建
我有自己的 C++,我正在尝试使用 Pybind11 生成 python 绑定:
我有为MarkerDetector::Params
struct 生成绑定的问题,因为它是一个内部结构,使用工厂方法构造,以枚举作为参数:
有谁知道如何处理这个更高级的案例?
python - pytest 和 pybind11:无法导入 c++ 扩展
我使用 pybind11 将模块添加_cxx
到现有的 python 库liba
。在liba._cxx.func
我编译 c++ 扩展并通过setup.py
.
当我在 中运行测试时liba/tests/test__cxx.py
,它抱怨它无法导入liba._cxx
如何解决这个问题?
python - 获取引用的 Eigen3 矩阵的所有权
如何通过引用将特征矩阵 A 传递给函数,然后窃取 A 的所有权?
我正在为 Python 编写一个 C++ 扩展,它接受两个std::vector<Eigen::Ref<Mat> >
并返回一个std::vector<Mat>
. 返回向量的每个元素可以是输入向量中引用的新矩阵或旧矩阵。
Eigen::Ref
来自 pybind11 的示例在此处(pybind11 doc)提到了 C++ 和 Python 之间的传递引用。
我尝试修改一个示例(来自旧的错误报告)。但是源没有移动到目标。这是因为源矩阵最后不是空的。
测试:
结果: