Numpy 1.19 no se puede importar debido a un error de tiempo de ejecución en MacOS 10.14.6. La prueba de cordura de Polyfit emitió una advertencia, probablemente debido al uso de un backend Accelerate con errores. Si lo compiló usted mismo, consulte site.cfg.example para obtener información. De lo contrario, informe esto al proveedor que proporcionó NumPy.
import numpy as np
RuntimeError: la prueba de cordura de Polyfit emitió una advertencia, probablemente debido al uso de un backend Accelerate con errores. Si lo compiló usted mismo, consulte site.cfg.example para obtener información. De lo contrario, informe esto al proveedor que proporcionó NumPy.
RankWarning: Polyfit puede estar mal acondicionado
Rastreo (llamadas recientes más última):
Archivo "/Users/billyzhaoyh/anaconda/envs/simulation/lib/python3.7/runpy.py", línea 183, en _run_module_as_main
mod_name, mod_spec, code = _get_module_details (mod_name, _Error)
Archivo "/Users/billyzhaoyh/anaconda/envs/simulation/lib/python3.7/runpy.py", línea 109, en _get_module_details
__importar __ (nombre_paquete)
Archivo "/Users/billyzhaoyh/Desktop/Simulation/reina-model/calc/__init__.py", línea 1, en
desde .utils importar calcfunc
Archivo "/Users/billyzhaoyh/Desktop/Simulation/reina-model/calc/utils.py", línea 9, en
desde utils.quilt import load_datasets
Archivo "/Users/billyzhaoyh/Desktop/Simulation/reina-model/utils/quilt.py", línea 4, en
edredón de importación
Archivo "/Users/billyzhaoyh/anaconda/envs/simulation/lib/python3.7/site-packages/quilt/__init__.py", línea 87, en
desde .tools.command importación (
Archivo "/Users/billyzhaoyh/anaconda/envs/simulation/lib/python3.7/site-packages/quilt/tools/command.py", línea 24, en
importar numpy como np
Archivo "/Users/billyzhaoyh/Desktop/Simulation/reina-model/src/numpy/numpy/__init__.py", línea 286, en
subir RuntimeError (msg)
RuntimeError: la prueba de cordura de Polyfit emitió una advertencia, probablemente debido al uso de un backend Accelerate con errores. Si lo compiló usted mismo, consulte site.cfg.example para obtener información. De lo contrario, informe esto al proveedor que proporcionó NumPy.
RankWarning: Polyfit puede estar mal acondicionado
Python 3.7.6
Numpy -e git + https://github.com/numpy/numpy.git@078ac01a85c4db46e7f148829c2e0d0e0f30c36f#egg = numpy
Esto es por diseño. ¿Leíste el mensaje de error? ¿No está claro?
Entonces, ¿cómo puedo solucionar este error actualizando el backend de Accelerate? Hice una búsqueda y no creo que pueda actualizar eso para mi MacOS.
@billlyzhaoyh Solicitar utilizar OpenBLAS mientras se compila en MacOS. Use site.cfg en el directorio raíz del repositorio para construir usando el mismo.
Clausura. Recomendamos encarecidamente no utilizar Accelerate.
Clausura. Recomendamos encarecidamente no utilizar Accelerate.
Claro, ¿cómo lo uso? Obtuve el mismo error cuando ejecuto simple import numpy
en mi macOS
Si está construyendo su propio NumPy, obtenga OpenBlas. Puede usar python3 tools/openblas_support.py
para descargar el que se usó para construir la rueda oficial. Si está usando NumPy de un proveedor, pregúntele por qué está usando Accelerate.
Si está construyendo su propio NumPy, obtenga OpenBlas. Puede usar
python3 tools/openblas_support.py
para descargar el que se usó para construir la rueda oficial. Si está usando NumPy de un proveedor, pregúntele por qué está usando Accelerate.
Definitivamente no estoy construyendo por mi cuenta. Estoy usando macOS y ejecuto pip3 install -U numpy
, así que no estoy seguro de a qué "proveedor" te refieres con eso.
Pip puede construir desde la fuente a tus espaldas. Si tarda más de unos segundos en instalarse, es posible que se esté compilando. Para forzar a pip a usar solo ruedas binarias y nunca compilar, use
pip3 install --upgrade --only-binary :all: <package>
¿Puedes intentar desinstalar tu numpy e instalarlo con el argumento --only-binary :all:
?
Esto me solucionó el problema. (Reemplacé pip
con pip3
... y la versión numpy a partir de hoy será 1.19.1)
https://gist.github.com/yatsu/47bdde35e8abbe7d14bbe730342aa9e0#file -numpy-openblas-macos-pip-sh
EDITAR: Pegar la solución completa en caso de que se elimine la esencia :)
# Setup HomeBrew if not already installed: https://brew.sh/
brew install openblas
mkdir /tmp/numpy_local
cd /tmp/numpy_local
pip3 download --no-binary :all: --no-deps numpy
unzip numpy-*.zip # (assuming there's only one version in this folder)
cd numpy-1.19.1 # the version may be a later version than this
cat > site.cfg <<EOF
[openblas]
libraries = openblas
library_dirs = $(brew --prefix openblas)/lib
include_dirs = $(brew --prefix openblas)/include
runtime_library_dirs = $(brew --prefix openblas)/lib
EOF
pip3 install .
# cleanup
cd /tmp
rm -rf numpy_local
Una solución un poco más simple:
$ rm -v ~/Library/Caches/pip/wheels/<em i="7">/</em>/<em i="8">/</em>/<em i="9">numpy</em> # clear the pip wheel cache of any built numpy wheels
Según https://twitter.com/pradyunsg/status/1317081239526936576?s=20 esto ahora se puede hacer con un comando integrado pip
:
$ pip cache remove numpy
$ brew install openblas # make sure OpenBLAS is installed
$ # activate your pypy3 virtualenv
$ OPENBLAS="$(brew --prefix openblas)" pip install numpy # let numpy's setup.py know where OpenBLAS is installed
Esto tiene el beneficio adicional de que no será necesario reconstruir la rueda y funcionará cualquier pip install numpy
en el futuro en pypy3.
Sin embargo, dejando de lado las soluciones, ¿por qué el comportamiento de compilación predeterminado produce una rueda rota que ni siquiera puede import
? Parece que ser "por diseño" construir un artefacto tan roto es un error de cualquier manera; una autoprueba al final de la compilación que aborta si se encuentra en este estado sería una adición bienvenida. (Especialmente si puede proporcionar un mensaje de error útil como "prueba brew install openblas
" o algo así).
Intentar importar después de la compilación parece una buena idea.
¿Por qué no simplemente rechazar la compilación en macOS si no se encuentra openblas?
Hay varios backends blas válidos, además de OpenBLAS. El único inválido es Accelerate. Desafortunadamente, macOS no proporciona una forma de decirnos que están proporcionando Accelerate, solo podemos detectarlo en tiempo de ejecución activando un cálculo incorrecto conocido. Si puede descubrir cómo detectar Accelerate antes, sería genial. Lo mejor que hemos tenido hasta ahora es detectar un enlace simbólico, pero eso es muy frágil.
Si algún usuario de python-poetry se encuentra con este hilo, me gustaría agregar que la solución de @glyph también funciona si reemplaza la última línea con OPENBLAS="$(brew --prefix openblas)" poetry add numpy
Probé una versión anterior de numpy y funcionó para mí
pip3 instalar numpy == 1.18.0
Espero que esto ayude
desinstalar e instalar 1.18.0 - ¡funcionó para mí! kuddos a lo anterior ^^
Estoy aquí para informar que la sugerencia de usar openblas no funciona. Esto falla:
OPENBLAS="$(brew --prefix openblas)" pip install numpy
python -c 'import numpy'
# => RuntimeError: Polyfit sanity test emitted a warning, most likely due to using a buggy Accelerate backend. If you compiled yourself, see site.cfg.example for information. Otherwise report this to the vendor that provided NumPy.
mientras esto funciona sin ningún problema:
pip install numpy==1.18.0
python -c 'import numpy'
@fny verifica la salida para ver si pip está usando una rueda en caché. Es posible que tenga que borrar el caché en ese caso.
@fny, consulte https://github.com/numpy/numpy/issues/15947#issuecomment -686159427 para obtener instrucciones actualizadas
¿Alguien puede proporcionar un enlace donde se pueda leer acerca de por qué Accelerate es una mala implementación de BLAS que no debería usarse? Intenté buscar en Google "por qué la aceleración de Apple es un mal blas" y no encontré nada.
No sé dónde está un desglose completo, pero Accelerate tiene problemas de subprocesos, algunos resultados incorrectos y expone una versión desactualizada de LAPACK.
Como referencia, esta solución falla. ¿Por qué esto no funciona? ¿Y por qué es necesario algo de esto?
@orome en cuanto a "por qué" preguntar a Apple. Ellos son a los que les compró el sistema y están enviando un software con errores que el equipo mayoritariamente voluntario de NumPy tiene que solucionar. Cualquier enojo debe dirigirse a ellos, no a nosotros.
@orome en cuanto al "por qué" preguntar a Apple ... Cualquier enojo debe dirigirse a ellos, no a nosotros.
¡Eso es definitivamente a donde se dirige (de nuevo)!
Esto me solucionó el problema. (Reemplacé
pip
conpip3
... y la versión numpy a partir de hoy será 1.19.1)
https://gist.github.com/yatsu/47bdde35e8abbe7d14bbe730342aa9e0#file -numpy-openblas-macos-pip-shEDITAR: Pegar la solución completa en caso de que se elimine la esencia :)
# Setup HomeBrew if not already installed: https://brew.sh/ brew install openblas mkdir /tmp/numpy_local cd /tmp/numpy_local pip3 download --no-binary :all: --no-deps numpy unzip numpy-*.zip # (assuming there's only one version in this folder) cd numpy-1.19.1 # the version may be a later version than this cat > site.cfg <<EOF [openblas] libraries = openblas library_dirs = $(brew --prefix openblas)/lib include_dirs = $(brew --prefix openblas)/include runtime_library_dirs = $(brew --prefix openblas)/lib EOF pip3 install . # cleanup cd /tmp rm -rf numpy_local
Esto de alguna manera no funcionó para mí. Compilé OpenBLAS desde la fuente y lo instalé en /opt/OpenBLAS
, y reemplacé cada aparición de $(brew --prefix openblas)
con /opt/OpenBLAS
. Mi instalación de Python 3 es de las herramientas de línea de comandos de Xcode, así que usé pip3 install --user .
lugar de pip3 install .
. Aparte de eso, seguí el guión exactamente. Sin embargo, después de ejecutar python3 -c "import numpy"
, el mensaje de error es exactamente igual que antes:
RuntimeError: la prueba de cordura de Polyfit emitió una advertencia, probablemente debido al uso de un backend Accelerate con errores. Si lo compiló usted mismo, consulte site.cfg.example para obtener información. De lo contrario, informe esto al proveedor que proporcionó NumPy.
RankWarning: Polyfit puede estar mal acondicionado
¿Alguna idea de por qué podría haber sucedido esto?
pip install pandas
pip3 install pandas
pip3 install pandas --no-build-isolation --no-cache-dir
sudo pip3 install pandas --no-cache-dir
Hice una instalación limpia de macOS Big Sur y una instalación limpia de Python3.9 a través de Homebrew ( brew install python3
). Después de eso, instalé pip3 con el comando brew install pip
y quería instalar Pandas, pero siempre aparece el siguiente error. Intenté con todos los comandos enumerados anteriormente para instalar Pandas en macOS Big Sur y Python3 ...
¿Alguien puede ayudar? Estos son los únicos paquetes realmente instalados:
Versión del paquete
pip 20.2.4
setuptools 50.3.2
rueda 0.35.1
pip install pandas
Obteniendo requisitos para construir la rueda ... error
ERROR: Comando con error con estado de salida 1:
comando: / usr / local / opt / [email protected]/bin/python3.9 /usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel / var / carpetas / zv / 0q58rjv549bd4qjdqlrwlvl40000gn / T / tmpzr3sthd6
cwd: / privado / var / carpetas / zv / 0q58rjv549bd4qjdqlrwlvl40000gn / T / pip-install-pvlaq6iq / pandas
Salida completa (23 líneas):
init_dgelsd falló el inicio
Rastreo (llamadas recientes más última):
Archivo "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", línea 280, en
principal()
Archivo "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", línea 263, en main
json_out ['return_val'] = hook (** hook_input ['kwargs'])
Archivo "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", línea 114, en get_requires_for_build_wheel
retorno de gancho (config_settings)
Archivo "/private/var/folders/zv/0q58rjv549bd4qjdqlrwlvl40000gn/T/pip-build-env-ly4c8n5_/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", línea 149, en get_requires_for_build
return self._get_build_requires (
Archivo "/private/var/folders/zv/0q58rjv549bd4qjdqlrwlvl40000gn/T/pip-build-env-ly4c8n5_/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", línea 130, en _get_build_requires
self.run_setup ()
Archivo "/private/var/folders/zv/0q58rjv549bd4qjdqlrwlvl40000gn/T/pip-build-env-ly4c8n5_/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", línea 253, en run_setup
super (_BuildMetaLegacyBackend,
Archivo "/private/var/folders/zv/0q58rjv549bd4qjdqlrwlvl40000gn/T/pip-build-env-ly4c8n5_/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", línea 145, en run_setup
exec (compilar (código, __file__, 'exec'), locals ())
Archivo "setup.py", línea 488, en
importar numpy como np
Archivo "/private/var/folders/zv/0q58rjv549bd4qjdqlrwlvl40000gn/T/pip-build-env-ly4c8n5_/overlay/lib/python3.9/site-packages/numpy/__init__.py", línea 286, en
subir RuntimeError (msg)
RuntimeError: la prueba de cordura de Polyfit emitió una advertencia, probablemente debido al uso de un backend Accelerate con errores. Si lo compiló usted mismo, consulte site.cfg.example para obtener información. De lo contrario, informe esto al proveedor que proporcionó NumPy.
RankWarning: Polyfit puede estar mal acondicionado
ERROR: Comando con error con estado de salida 1: / usr / local / opt / [email protected]/bin/python3.9 /usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel / var / folders / zv / 0q58rjv549bd4qjdqlrwlvl40000gn / T / tmpzr3sthd6 Compruebe los registros para ver la salida completa del comando.
En este número Pandas # 37880 dicen que es un gran problema con la última versión de macOS. ¿¿Alguna ayuda??
¡Gracias por adelantado!
mismo problema con el mismo error
Esto funcionó para mí en MacOS 11.0.1 Big Sur, Python 3.8.2
:
pip3 install --force-reinstall numpy\<1.19
pip3 install --upgrade wheel
brew install libjpeg # optional
pip3 install pillow # optional
pip3 install matplotlib
....
Successfully installed matplotlib-3.3.3
Este problema está cerrado. Si está usando MacOS 11 con una Python que instaló desde HomeBrew, a partir de noviembre de 2020 debe usar brew install NumPy
no pip install numpy
. Por favor, no comente aquí, abra una nueva edición si una lectura cuidadosa de gh-17784 no le ayuda a averiguar qué está pasando.
Estos pasos me ayudaron a resolver el problema:
https://gist.github.com/mohammadnassiri/31ca8f4f2298d8694a8327814631455c
Comentario más útil
Una solución un poco más simple:
$ rm -v ~/Library/Caches/pip/wheels/<em i="7">/</em>/<em i="8">/</em>/<em i="9">numpy</em> # clear the pip wheel cache of any built numpy wheels
Según https://twitter.com/pradyunsg/status/1317081239526936576?s=20 esto ahora se puede hacer con un comando integrado
pip
:Esto tiene el beneficio adicional de que no será necesario reconstruir la rueda y funcionará cualquier
pip install numpy
en el futuro en pypy3.