Matlab fails to run Python built with Pybind

33 visualizaciones (últimos 30 días)
Jay Castro
Jay Castro el 9 de Oct. de 2023
Comentada: David Truscott el 11 de Dic. de 2023
Attempting to call a member of a user-defined Python module which was built using Pybind. The module seems to import correctly via
mymodule = py.importlib.import_module("mymodule")
But on attempting to access a class from the module, I get this error:
>> myclass = mymodule.myclass
Cannot find class 'py.pybind11_builtins.pybind11_type'.
I've tested that the module loads and works correctly when accessed in Python. I'm using Matlab on Ubuntu, and Python 3.10
  6 comentarios
Sylwester Arabas
Sylwester Arabas el 22 de Nov. de 2023
Update: a workaround has just been proposed and succesfully tested here: https://github.com/pybind/cmake_example/pull/164
David Truscott
David Truscott el 11 de Dic. de 2023
This is the work-around for that error that worked for me on Windows:
Create a file called 'pybind11_builtins.py' and place it in the folder where your python modules library resides. (For my Python 3.10 installation in Windows, it was {Path to Python Installation} \Lib folder.
The only line in that file should be 'pybind11_type=type' (without the apostrophes).
Reload your pyenv in Matlab,
>>py.importlib.import_module('pybind11_builtins')
>>py.importlib.import_module(' Your originally intended module here')

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Call Python from MATLAB en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by