boost-python相关内容

防止可变类的自动哈希功能

Python仅允许对不可变对象使用哈希值.例如, hash((1,2,3)) 可以,但是 hash([1,2,3]) 引发TypeError: unhashable type: 'list'.请参见 Python文档.但是,当我通过通常的boost::python::class_函数在Boost.Python中包装一个C ++类时,每个生成的Python类都有一个默认的哈希 ..
发布时间:2020-09-22 18:46:48 其他开发

如何在包装的类中重写__setattr__(来自C ++)?

使用boost::python,我已经能够包装一个具有一些虚函数的类(Node),这是一个麻烦,但是现在我试图覆盖该类的setattr/getattr. 我有boost::python来调用我自己的setattr实现,但是我不知道如何避免发生递归. 所以我有一个Node类,并且我希望能够编写: node1.param1 = 5 # Call node.SetParam ..
发布时间:2020-09-22 18:46:44 C/C++开发

在Boost.Python的Bjam中包含系统库

这可能是一个非常基本的问题,但我无法在任何地方找到解决方案.我正在使用Boost.Python在C ++中构建Python扩展,并且需要将我的项目与libpcap链接,但是我指定的内容似乎都没有将bjam指向正确的位置. Pcap当前安装在/usr/local/include (OS X 10.9)中,我可以使用XCode,Make或任何其他构建系统将其导入.但是,当我尝试运行bjam时,出现链接 ..
发布时间:2020-09-22 18:44:33 C/C++开发

Boost :: python:对象在覆盖的方法中自我毁灭

在我的应用程序中嵌入python时,我遇到了与python对象生存期相关的问题.我的应用程序使用虚拟方法将某些类扩展为python,因此可以通过python代码派生和扩展它们.应用程序使用python解释器并调用对象的虚拟方法.问题是,当对象的引用计数器在从C ++代码调用的python重写方法内部达到零时,解释器会立即销毁对象.因此,如果我们在对象的另一个方法中调用这种方法,我们将获得与删除此语 ..
发布时间:2020-09-22 18:43:30 C/C++开发

如何使用带有boost.python的asyncio?

是否可以将Python3 asyncio软件包与Boost.Python库一起使用? 我有使用Boost.Python构建的CPython C++扩展名.用C++编写的函数可以工作很长时间.我想使用asyncio调用这些函数,但是res = await cpp_function()代码不起作用. 在协程内部调用cpp_function会发生什么? 如何不调用工作时间很长的C++函数来 ..
发布时间:2020-09-22 18:43:25 其他开发

CMake找不到boost_python

我正在尝试从Mac OS High Sierra上的此链接构建此简单的Boost python演示 以下是hello_ext.cpp: #include char const* greet() { return "hello, world"; } BOOST_PYTHON_MODULE(hello_ext) { using namesp ..
发布时间:2020-09-22 18:43:18 C/C++开发

如何在boost :: python嵌入式python代码中导入模块?

我正在使用boost :: python将一些python代码嵌入到应用程序中.我能够获得要正确评估的打印语句或其他表达式,但是当我尝试导入模块时,它没有导入并且应用程序正在退出.此外,嵌入式代码中的globals()函数调用也给出了运行时错误. #include using namespace boost; using namespace boost ..
发布时间:2020-09-22 18:43:14 C/C++开发

如何将C ++对象转换为boost :: python :: object?

bp :: extract将bp :: object转换为特定类型. 问题是如何做反义词? 假设我有一个PointContainer和Point类. 我需要具有这种签名的功能 bp::object get_point(const PointContainer &, const bp::object & input); 它应该检查输入参数是否为整数.在这种情况下,它将从PointCo ..
发布时间:2020-09-22 18:42:04 C/C++开发

如何返回std :: vector< const T *>到python?

我有一个c ++ 11函数,返回一个: std::vector f(); T是我通过class_暴露给python的c ++类.所有T实例都驻留在静态存储中,该存储将一直存在于python进程的整个过程中. 我正在尝试将f作为python函数公开 getAllTs() 这将返回T周围的python对象包装.我选择T *作为class_的保留类型. ..
发布时间:2020-09-22 18:42:02 其他开发

C ++的boost :: python包装对象的析构函数调用

当a的C ++析构函数执行boost :: python时,可以提供任何保证 考虑到零的时刻被称为包装的对象 对应的python对象的引用计数? 我担心一个C ++对象会打开一个文件进行写入并在其析构函数中执行文件关闭.是否可以保证在删除该对象的所有python引用或超出范围时都写入文件? 我的意思是: A=MyBoostPythonObject() del A # Is the ..
发布时间:2020-09-22 18:40:59 C/C++开发

Boost.python重载numpy数组和python列表的构造函数

给出一个用Boost.Python公开的C ++类,我该如何公开两个构造函数: 一个采用numpy数组的对象, 另一个需要python列表的人吗? 解决方案 对于您的意思我不是100%,但是我假设您想让一个构造函数使用一个Python列表,而另一个则使用一个Python列表. numpy数组.有两种方法可以解决此问题.最简单的方法是使用make_constructor函数并将其重载 ..
发布时间:2020-09-22 18:39:50 Python

如何组织python/Boost Python项目

我有一个python项目,我想使用Boost :: Python与某些C ++库进行交互.我想知道其他人如何在同一项目中组织他们的python/boost :: python/C ++代码. 按照组织,我的意思是在文件/目录结构,构建过程等方面. 解决方案 在下面的内容中,pif表示Python接口.首先,我有一个名为conv_pif.hpp的通用头文件,其中包含Boost头和C + ..
发布时间:2020-09-22 18:39:48 C/C++开发

复制boost.python对象

我有一些boost python类,我在python中实例化了这些类.我要复制它们.所以,如果我有 p = Bernoulli(0.5) 我想做 q = Bernoulli(p) 但是,如果我不知道p的类型怎么办?我尝试这样做: q = copy.deepcopy(p) 但是python表示无法腌制p. 我唯一的解决方案是向Bernoulli的接口添加一个clo ..
发布时间:2020-09-22 18:39:46 Python

如何获得boost.python教程示例以与Python3链接?

我想将boost.python与python 3.2+(最好是3.4)和Visual Studio 2010一起使用. 当我尝试针对任何Python3(我已经测试过3.0、3.2和3.4)制作libs\python\example\tutorial示例时,它没有链接(请参见下文).当我将它链接到2.7时,它可以工作. 两次尝试之间唯一要做的更改是更新主目录中的user-config.j ..
发布时间:2020-09-22 18:38:42 其他开发

CMAKE 3.9.3找不到Boost1.65.1 Boost_Python

现在有点令人生畏.我已经尽我所能尝试了,但无济于事. 我正在使用基于Ubuntu 16.04 LTS的ElementaryOS Loki. 我在/usr/local下安装了boost 1.65.1 我正在使用cmake 3.9.3,该版本支持Build Boost 1.65.0及更高版本. 我已经尝试了各种可能的方法来弄乱我的CMakeLists.txt,到目前为止,它看起来像这样 ..
发布时间:2020-09-22 18:38:38 C/C++开发