Публикации по теме 'pybind11'


Pybind11 демистифицирован. Глава 3: Ваше первое расширение
Мы не далеко от первого расширения. Давайте сделаем пример xxmodule.c , настоящее расширение Python вместо встроенного модуля. Мы оставим двоичный файл интерпретатора Python нетронутым и создадим расширение как разделяемую библиотеку. Оператор импорта Python загрузит библиотеку с помощью dl_open и сделает ее фактическим модулем Python, который вы можете использовать в интерпретаторе. # Copy the xxmodule.c file to a new location # Assuming that you're in the debug folder cd ../.. cp..

Хотите повысить производительность Python? Это проще, чем вы думаете
Хотите повысить производительность Python? Это проще, чем вы думаете Общепризнанным фактом является то, что Python стал одним из самых популярных языков программирования в мире. С 1980-х годов, когда Гвидо ван Россум возглавил разработку языка, он добился огромного успеха на протяжении четырех десятилетий. Я считаю, что одной из причин этого является то, что он поддерживается большим сообществом и популярен среди крупных компаний, таких как Google. Как мультипарадигмальный язык..

Pybind11 демистифицирован. Глава 2. Взлом встроенных модулей Python
Написание расширений Python, несомненно, является одним из способов улучшения Python, но вы также можете разветвить репозиторий и создать свою версию интерпретатора Python. На практике вам, вероятно, нечасто приходится создавать Python самостоятельно как пользователю. Но полезно поиграть с ним, чтобы ознакомиться с кодовой базой Python и понять, что делает Python C API. Этот учебный опыт, несомненно, поможет вам писать более качественный код расширения и придаст вам больше уверенности при..

Любопытно повторяющийся Python
Любопытно повторяющийся Python В этом посте я попытаюсь объяснить идиому C++ CRTP и то, как связать ее с python с помощью pybind11. Удивительно R повторяющийся T emplate P шаблон или CRTP — это идиома языка C++. Это тип статического или времени компиляции полиморфизма . Истинная сила CRTP заключается в том, что он разрешает все вызовы виртуальных функций во время компиляции, что позволяет избежать дополнительной памяти vPtr , vTable , а также избежать дополнительного..

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

вызвать функцию Python из c ++ с помощью pybind11
Я пытаюсь вызвать функцию Python из кода C ++, который содержит функцию main() , используя Pybind11 . Но я обнаружил, что доступных ссылок очень мало. В большинстве существующих документов говорится об обратном направлении, то есть о вызове C ++...
8029 просмотров
schedule 08.08.2023

Ошибка: несовместимые аргументы функции
Я использую pybind11 для доступа к некоторым функциям, которые я написал на C++ из python. Я хочу вернуть инициализированный экземпляр структуры в python (из функции-члена класса), чтобы я мог получить доступ к значениям экземпляра в python. Я...
4982 просмотров
schedule 22.07.2022

Обертывание типов возврата контейнера STL с помощью Pybind11
Я связываю, чтобы обернуть функцию C ++ (используя Pybind11), которая возвращает контейнер STL, который сам заключен в интеллектуальный указатель. Пример показан ниже. Функция перегружена, поэтому мне нужно указать подпись. #include...
2429 просмотров
schedule 26.04.2022

как передать метод python и kwargs для повышения функции и вызова python c ++
как передать метод python и kwargs в функцию boost C ++ и вызвать метод python с помощью kwargs. питон: def py_method(**kwargs): for key in kwargs.keys(): print 'Key: ', key, ', Value: ', kwargs[key] cpp_method(py_method, arg1=1,...
353 просмотров
schedule 18.03.2024

ошибка: несоответствие типа/значения в аргументе 1 в списке параметров шаблона для ‘template‹class _Tp, class _Dp› class std::unique_ptr’
Прежде чем мы начнем, я полный нуб в C++11, использовал C несколько лет назад. Я пытаюсь написать привязку python к коду С++ 11, используя pybind11, и получаю ошибку subjected . В основном я следую этому руководству от Nvidia. народ и застрял...
1026 просмотров
schedule 30.10.2022

pybind11::объект в pybind11::dict
Я пытаюсь встроить интерпретатор Python в свое приложение C++17. Я должен получить доступ к экземпляру объекта Foo , который живет в мире C++, из python. Поэтому я придумал следующий код: #include <pybind11/embed.h> #include...
1485 просмотров
schedule 02.12.2022

Есть ли способ вызвать асинхронный метод Python из С++?
У нас есть кодовая база на python, которая использует asyncio и сопрограммы (методы async и await s), я хотел бы вызвать один из этих методов из класса C++, который был перенесен в python (используя pybind11) Допустим, есть этот код: class...
2737 просмотров
schedule 02.06.2022

Простой, высокопроизводительный, простой в обслуживании способ взаимодействия между Java и современным C++
Я ищу лучший подход для вызова современного кода C++ 11/14 из java (с обратными вызовами из C++ обратно в java). Каков наилучший/самый простой/быстрый способ обеспечения взаимодействия между java и С++ 11/14? Я некоторое время программировал на...
122 просмотров
schedule 15.02.2023

Как импортировать модуль расширения python, который имеет то же имя, что и чистый пакет python с подпакетами и модулями?
У меня есть проект с модулями расширения pybind11, структурированный иерархически. При импорте столкнулся со следующей проблемой: 1. Тест 1 1.1. Структура пакета org ├── __init__.py ├── sdk │   ├── core.cpython-37m-x86_64-linux-gnu.so │...
373 просмотров
schedule 25.11.2022

Как развернуть приложение, использующее pybind11?
Я знаю, что pybind11 предоставляет способ вызова Python из C++. У меня вопрос, как я могу распространять приложение? Например, нужно ли пользователю по-прежнему устанавливать Python и пакеты Python на свою машину? Я хочу, чтобы, если я использую...
72 просмотров
schedule 03.08.2023

Как сохранить py::objects живыми после module.reload()
После перезагрузки модуля my_module все его объекты удаляются, но я хочу удалить объекты из C++. Как запретить Python удалять объекты? #include <iostream> #include <pybind11/embed.h> class Obj{ ~Obj(){std::cout << "deleted"...
191 просмотров
schedule 26.09.2022

поддерживает ли pybind11 импорт стиля «из ‹package› import ‹module›»?
как мне сделать from <package> import <module> в pybind11? Я не хочу делать import <package> , а затем getattr, как показано ниже. auto package = pybind11::module::import("package"); auto module = package.attr("module")
347 просмотров
schedule 24.06.2022

pybind11: представить объединение с дополнительными данными
У меня есть структура, которая выглядит следующим образом: /// Enumeration describing register data types. typedef enum RegDataType { RegDataType_Unknown = 0x0, ///< Unknown register data type. RegDataType_ImmMultiData = 0x1,...
174 просмотров
schedule 22.08.2022

фатальная ошибка при компиляции тестовых примеров pybind11 на raspbian
Следуя этому вопросу , я сейчас пытаюсь скомпилировать pybind11 тестовые примеры в соответствии с инструкциями здесь на Raspberry Pi. Что я сделал до сих пор: установил Raspbian Raspbian Buster Lite с официальной страницы обновил /...
159 просмотров
schedule 25.07.2022

Внеэкранный рендеринг с QOffscreenSurface с использованием Docker
Я использую Qt5 для рендеринга за пределами экрана и имею ошибку сегментации при работе внутри Docker. У меня есть код внутри c++ и вызов функции через python с использованием pybind11 Это код, вызывающий segfault QSurfaceFormat...
347 просмотров
schedule 26.02.2023

Как я могу вручную создать расширение C ++ с помощью mingw-w64, Python и pybind11?
Моя конечная цель - скомпилировать расширение Python C ++ из моего кода C ++. В настоящее время, чтобы начать работу, я следую простому примеру из первых шагов pybind11 документации. Моя рабочая среда - это 64-разрядная версия Windows 7...
973 просмотров
schedule 30.04.2023

Как получить изображение OpenCV из Python и использовать его в C ++ в pybind11?
Я пытаюсь понять, как можно получить изображение OpenCV из Python на C ++. Я пытаюсь отправить функцию обратного вызова из C ++ в мой модуль Python, а затем, когда я вызываю определенный метод python в моем приложении C ++, я могу получить доступ к...
1457 просмотров
schedule 23.04.2022

Как выставить объект pybind11:: в C?
В настоящее время у меня есть эта подпись в моем классе С++: typedef void(*CallbackFn)(bool, std::string, py::array_t<uint8_t>&); void AddCallback(CallbackFn callback); и в моем клиентском коде у меня просто есть: void...
36 просмотров
schedule 21.04.2023

Pybind11: init‹› с лямбдой
Я использую pybind11 в качестве оболочки моего кода C++ в библиотеке Python. Бывает, что есть аргументы, которые я не могу предоставить, или иногда я хочу сделать преобразование/инициализацию, которую я знаю на стороне C++. Например, это может...
1194 просмотров
schedule 10.08.2022

Pybind11, как вызвать __repr__ объекта в std::vector?
Я привязываю тип my_type py::class_<my_type, std::shared_ptr<my_type>>(m, "MyType") .def("__repr__", [](const my_type& o){return fmt::format("MyType: {}", o);}); а также std::vector с...
626 просмотров
schedule 25.08.2022