Numpy: error de importación de numpy

Creado en 24 dic. 2016  ·  4Comentarios  ·  Fuente: numpy/numpy

Hola,
Cuando escribo: "from numpy import *" del código y ejecuto el código, luego encuentro el siguiente error:

Traceback (most recent call last):

Archivo "rgbtoyuv.py", línea 2, en
importar numpy como np
Archivo "/usr/local/lib/python3.5/site-packages/numpy-1.11.2-py3.5-linux-x86_64.egg/numpy/__init__.py", línea 163, en
de . importar al azar
Archivo "/usr/local/lib/python3.5/site-packages/numpy-1.11.2-py3.5-linux-x86_64.egg/numpy/random/__init__.py", línea 99, en
desde la importación de .mtrand *
ImportError: /usr/local/lib/python3.5/site-packages/numpy-1.11.2-py3.5-linux-x86_64.egg/numpy/random/mtrand.cpython-35m-x86_64-linux-gnu.so : símbolo indefinido: PyFPE_jbuf

Plataforma ubuntu16.04 x86_64

versión de Python: 3.5.2

versión numpy versión: 1.9.0 también, pero la instalación falló.

Ayúdame a encontrar el motivo, muchas gracias.

Comentario más útil

¿Me parece un informe de error?

Algunas pistas sobre lo que está pasando aquí:

CPython tiene un código opcional para capturar SIGFPE y convertirlo en una excepción. Para usarlo, envuelva los cálculos de punto flotante de nivel C en PyFPE_START_PROTECT / PyFPE_END_PROTECT . Si CPython se compiló con --with-fpectl (que corresponde a tener un #define WANT_SIGFPE_HANDLER en pyconfig.h ), entonces PyFPE_jbuf se exporta como un símbolo global y estas macros se expanden en algunas cosas inteligentes que hacen referencia a este símbolo. Si CPython se compiló sin --with-fpectl , entonces el símbolo no se exporta y las macros se convierten en no operativas. Entonces, esto significa que CPython en realidad tiene una ABI diferente e incompatible dependiendo de si se compiló con o sin --with-fpectl . Alegría.

(Parece que puede verificar qué tipo de CPython tiene haciendo import fpectl ; si esto tiene éxito, entonces tiene un --with-fpectl CPython).

El propio Numpy no usa estas macros. Pero el código generado automáticamente por Cython sí los usa.

Conclusión: si compila un módulo Cython usando un CPython que se creó con --with-fpectl , se bloqueará cuando intente ejecutarlo en un CPython que se creó sin --with-fpectl .

Comprobación rápida de algunas compilaciones comunes de Linux CPython para ver cuáles usan --with-fpectl :

  • Manylinux: no
  • Pruebas de Debian actuales: sí
  • Ubuntu 12.04: sí
  • Ubuntu 16.04: sí
  • Conda: no (comprobado 2.7 y 3.5)
  • Fedora 25: no

@ kevinzhai80 : ¿Por alguna razón, construiste Numpy desde la fuente por alguna razón, usando Python instalado por Ubuntu, y luego trataste de importarlo desde un Python instalado con conda?

Todos 4 comentarios

¿Dónde te pusiste nervioso? Por cierto, preguntas como esta deben hacerse en la lista de correo, los problemas de github son para errores

¿Me parece un informe de error?

Algunas pistas sobre lo que está pasando aquí:

CPython tiene un código opcional para capturar SIGFPE y convertirlo en una excepción. Para usarlo, envuelva los cálculos de punto flotante de nivel C en PyFPE_START_PROTECT / PyFPE_END_PROTECT . Si CPython se compiló con --with-fpectl (que corresponde a tener un #define WANT_SIGFPE_HANDLER en pyconfig.h ), entonces PyFPE_jbuf se exporta como un símbolo global y estas macros se expanden en algunas cosas inteligentes que hacen referencia a este símbolo. Si CPython se compiló sin --with-fpectl , entonces el símbolo no se exporta y las macros se convierten en no operativas. Entonces, esto significa que CPython en realidad tiene una ABI diferente e incompatible dependiendo de si se compiló con o sin --with-fpectl . Alegría.

(Parece que puede verificar qué tipo de CPython tiene haciendo import fpectl ; si esto tiene éxito, entonces tiene un --with-fpectl CPython).

El propio Numpy no usa estas macros. Pero el código generado automáticamente por Cython sí los usa.

Conclusión: si compila un módulo Cython usando un CPython que se creó con --with-fpectl , se bloqueará cuando intente ejecutarlo en un CPython que se creó sin --with-fpectl .

Comprobación rápida de algunas compilaciones comunes de Linux CPython para ver cuáles usan --with-fpectl :

  • Manylinux: no
  • Pruebas de Debian actuales: sí
  • Ubuntu 12.04: sí
  • Ubuntu 16.04: sí
  • Conda: no (comprobado 2.7 y 3.5)
  • Fedora 25: no

@ kevinzhai80 : ¿Por alguna razón, construiste Numpy desde la fuente por alguna razón, usando Python instalado por Ubuntu, y luego trataste de importarlo desde un Python instalado con conda?

Hola njsmith,
Gracias por tu información, este problema está resuelto.

Gracias njsmith. Además: Ubuntu 17.10 Artful no . La actualización provocó el error:
$ python
Python 2.7.14 (predeterminado, 23 de septiembre de 2017, 22:06:14)
[GCC 7.2.0] en linux2
Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información.

importar fpectl
Rastreo (llamadas recientes más última):
Expediente "", línea 1, en
ImportError: ningún módulo llamado fpectl

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

toddrjen picture toddrjen  ·  4Comentarios

'
Pezhvuk picture Pezhvuk  ·  4Comentarios

inducer picture inducer  ·  3Comentarios

manuels picture manuels  ·  3Comentarios

Foadsf picture Foadsf  ·  3Comentarios