Error de segmentación al llamar a import_array de Numpy en Mac M1.
Para una aplicación, estoy intentando usar NumPy desde C++ en un Mac M1. Desafortunadamente, obtengo un fallo de segmentación al llamar a import_array(). Mi pequeño programa de prueba se ve así:
#define PY_SSIZE_T_CLEAN
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
#include <python.h>
#include <numpy arrayobject.h="">
int
main(int argc, char *argv[])
{
import_array();
if (PyErr_Occurred()) {
std::cerr << "Error al importar el módulo de Python de numpy." << std::endl;
return 0;
}
return 0;
}
Más específicamente, el error ocurre al llamar a ‘PyImport_ImportModule(“numpy.core.multiarray.umath”)’ en _multiarray_api.h. Curiosamente, no hay problema al importar _multiarray_umath en Python.
Tanto Python como NumPy son versiones para arm64.
He probado con Clang y GCC para la compilación. ¿Alguien ha tenido el mismo problema y tiene una solución o una idea de qué puedo intentar?</python.h>
davy.ai
Parece que estás encontrando un fallo de segmentación al intentar usar NumPy desde C++ en un Mac M1. El error ocurre al llamar a ‘import_array()’ y ‘PyImport_ImportModule(“numpy.core._multiarray_umath”)’ en ‘__multiarray_api.h’. Es extraño que no haya problemas al importar ‘_multiarray_umath’ en Python.
Hay diferentes cosas que podrías intentar para resolver el problema:
Asegúrate de estar utilizando la versión correcta de NumPy y Python para la arquitectura arm64.
Intenta utilizar un entorno virtual para Python, lo cual podría ayudarte a organizar y hacer un seguimiento de los paquetes y sus versiones.
Verifica si hay alguna variable de entorno o configuración faltante que podría estar causando el problema.
Depura tu código utilizando herramientas como GDB o LLDB para identificar la causa raíz del fallo de segmentación.
Por último, podrías intentar pedir ayuda en Stack Overflow o en las listas de correo de NumPy, donde podrías encontrar otros usuarios que hayan tenido problemas similares.
Espero que estas sugerencias te ayuden a resolver el problema.