Importar desde pyxdameraulevenshtein da el siguiente error, tengo
pyxdameraulevenshtein==1.5.3, pandas==1.1.4 and scikit-learn==0.20.2. Numpy is 1.16.1. Works well in Python3.6, Issue in Python3.7.¿Alguien ha tenido problemas similares con Python3.7 (3.7.9), imagen de la ventana acoplable - python:3.7-buster?
__init__.pxd:242: in init pyxdameraulevenshtein ??? E ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObjectEstoy en Python 3.8.5. Suena demasiado simple para ser real, pero tuve el mismo problema y todo lo que hice fue reinstalar numpy. Desaparecido.
pip install --upgrade numpyo
pip uninstall numpy pip install numpyintente con numpy==1.20.0 esto funcionó aquí, aunque otras circunstancias son diferentes (python3.8 en alpine 3.12).
De hecho, (construir e) instalar con numpy>=1.20.0 debería funcionar, como se señala, por ejemplo, en esta respuesta a continuación . Sin embargo, pensé que algunos antecedentes podrían ser interesantes y proporcionar también soluciones alternativas.
Hubo un cambio en la API de C en numpy 1.20.0 . En algunos casos, parece que pip descarga la última versión de numpy para la etapa de compilación, pero luego el programa se ejecuta con la versión instalada de numpy . Si la versión de compilación utilizada es <1.20 , pero la versión instalada es =>1.20 , se producirá un error.
(Al revés, no debería importar, debido a la compatibilidad con versiones anteriores. Pero si uno usa una versión instalada numpy<1.20 , no anticiparon el próximo cambio).
Esto lleva a varias formas posibles de resolver el problema:
numpy>=1.20.0pyproject.toml (old oldest-supported-numpy )--no-binary--no-build-isolationPara obtener una discusión más detallada de las posibles soluciones, consulte https://github.com/scikit-learn-contrib/hdbscan/issues/457#issuecomment-773671043 .