Вопросы по теме 'pybind11'

Как обернуть одноэлементный класс с помощью pybind11?
У меня есть одноэлементный класс на С++ (без открытого конструктора, программисты на С++ вызывают class.instance() для создания одноэлементного или возврата существующего). Я бы предпочел скрыть это на уровне Python. Если бы я писал синглтон...
1641 просмотров
schedule 13.05.2024

pybind11 возвращает массив объектов numpy
Используя pybind11 C++ API и python3, как мы можем правильно создать пустой массив объектов (то есть строк Unicode) в реализации C++ и вернуть его обратно в python? Какова точная структура памяти базового массива данных, переданного в...
1266 просмотров
schedule 12.10.2022

Как импортировать или установить готовый модуль расширения Python (C++) (т.е. библиотеку, не скомпилированную с помощью setuptools)?
У меня есть проект C++, для которого я разрабатываю интерфейс Python. На данный момент я использую pybind11 , так как он выглядит довольно аккуратно и имеет несколько хороших инструментов для создания модуля расширения. с CMake, так создается...
1287 просмотров

pytest и pybind11: невозможно импортировать расширение С++
Я использую pybind11, чтобы добавить модуль _cxx в существующую библиотеку Python liba . liba._cxx.func не существует, пока я не скомпилирую расширение С++ и не установлю всю библиотеку с помощью setup.py . Когда я запускаю тесты в...
429 просмотров
schedule 20.01.2023

Связывание функции с аргументом std :: initializer_list с использованием pybind11
Я пытаюсь создать привязки python с помощью pybind11 (v2.2.2 +) и не могу понять, как вызвать функцию C, которая имеет единственный аргумент std :: initializer_list. void list_ints(std::initializer_list<int>) И привязка pybind11:...
756 просмотров
schedule 29.09.2022

Pybind11: создать и вернуть массив numpy со стороны C++
Как создать массив numpy со стороны C++ и передать его python? Я хочу, чтобы Python выполнял очистку, когда возвращаемый массив больше не используется Python. Сторона C++ не будет использовать delete ret; для освобождения памяти, выделенной...
4275 просмотров
schedule 03.01.2023

Pybind11: создать простое представление данных
Я хочу создать numpy представление данных в классе С++. Но следующее делает копию вместо представления. Тест на питоне: import _cpp a = _cpp.A() print(a) a.view()[:] = 100 # should make it all 100. print(a) Результат: 40028064 0 0...
777 просмотров
schedule 06.11.2022

Pybind11: можно ли использовать mpi4py?
Возможно ли в Pybind11 использовать mpi4py на стороне Python, а затем передать коммуникатор на сторону C++? Если да, то как это будет работать? Если нет, то возможно ли это, например, с помощью Boost? И если да, то как это будет сделано? Я...
876 просмотров
schedule 08.12.2022

Pybind - Любопытно повторяющийся шаблон
У меня следующая структура класса (упрощенный пример моей реальной реализации): /* TestClass.hpp */ #pragma once template <class Impl> class CurRecTemplate { protected: CurRecTemplate() {} ~CurRecTemplate() {} Impl& impl()...
507 просмотров
schedule 26.10.2022

Как использовать Eigen :: Ref с pybind11?
Я использую pybind для обертывания кода C ++. Учитывая следующую функцию, которая изначально является частью библиотеки и не должна изменяться: void manipulate(Eigen::MatrixXd& data) { data = data*2; } Используя pybind, я могу...
1096 просмотров
schedule 12.05.2023

Проблема pybind11 bad_alloc с std::vector‹std::shared_ptr‹A››
У меня есть такие структуры: struct A{ void do_stuff(){...does stuff}; } struct B{ std::vector<std::shared_ptr<A>> objs; } мой пибинд: py::class_<A>(m, "A") .def("do_stuff", &A::do_stuff) py::class_<B>(m,...
356 просмотров
schedule 24.12.2022

pybind11 изменить массив numpy из C++
РЕДАКТИРОВАТЬ: теперь это работает, я не знаю, почему. Не думай, что я что-то изменил Я хочу передать и изменить большой массив numpy с помощью pybind11. Поскольку он большой, я не хочу копировать его и возвращать новый. Вот код: #include...
3146 просмотров
schedule 27.01.2023

Деструктор PyBind11 не вызывается?
У меня есть класс c++ , завернутый в PyBind11 . Проблема в том, что когда сценарий Python завершается, c++ destructor не вызывается автоматически. Это вызывает неаккуратный выход, потому что деструктор должен освободить сетевые ресурсы. В...
1231 просмотров
schedule 11.07.2022

Невозможно связать перегруженные статические функции-члены в pybind11
Я попытался связать статические перегруженные функции с помощью pybind11, но возникли некоторые проблемы. Вот пример кода #include <pybind11/pybind11.h> namespace py = pybind11; class TESTDB { public: static void aaaa(int a, int...
820 просмотров

невозможно вернуть shared_ptr из статической функции в pybind11
Я попытался связать статическую функцию, которая возвращает shared_ptr, указывающую на другой класс. Вот пример кода class Example { public: Example() {} ~Example() {} }; class ABC { public: static...
718 просмотров
schedule 20.04.2023

Eigen :: Matrix, содержащийся внутри структуры, помечен pybind11 как не записываемый
Я использую pybind11 для создания привязки Python для моей библиотеки C ++, которая использует типы Eigen. Однако, когда я пытаюсь связать структуру, содержащую Eigen::Matrix , соответствующий сгенерированный класс Python содержит все элементы...
111 просмотров
schedule 30.03.2023

Обертывание выделенного экземпляра C++ с помощью pybind11
При встраивании python в C++ через PyBind11 я застрял на следующей проблеме. Представьте, что я создаю экземпляр объекта shared_ptr через C++, а затем хочу передать этот указатель в pybind11, чтобы сгенерировать для него «теневую» привязку Python....
123 просмотров
schedule 21.08.2023

Как в pybind11 сделать py :: module известным для импорта?
Во встроенной программе C ++ в pybind11 я определяю модуль python для использования в качестве контейнера для нескольких объектов python, которые я не хочу предоставлять глобальному пространству имен. Затем я хочу импортировать этот модуль по мере...
826 просмотров
schedule 05.05.2023

Вернуть std::vector в python в виде массива numpy
Используя Pybind11, я пытаюсь передать массив numpy в С++ в std::vector , умножить его на 2 и вернуть этот std::vector в python в виде массива numpy. Я достиг первого шага, но третий делает некоторые странные вещи. Для передачи обратно я...
2689 просмотров
schedule 13.06.2022

pybind11 - перенос перегруженного оператора присваивания?
Я использую pybind11 для предоставления функций C ++ интерфейсу Python. Я хочу обернуть перегруженный оператор присваивания, но не знаю, как это сделать. Представленная документация и примеры на самом деле не охватывают это, по крайней мере, из...
682 просмотров
schedule 24.06.2023