Cómo instalar SciPy en Apple Silicon (ARM/M1)

2 minutos de lectura

avatar de usuario
David Sénéchal

Instalé con éxito python 3.9.1 con Numpy y Matplotlib en una nueva Mac mini con Apple Silicon. Sin embargo, no puedo instalar SciPy: obtengo errores de compilación cuando uso

python3 -m pip install scipy

También intenté instalar todo, desde brew, y import scipy funciona, pero usarlo da una falla de segmentación. He instalado versiones ARM de lapack y openblas, pero esto no soluciona el problema.

¿alguien lo ha logrado? (Estoy interesado en ejecutarlo de forma nativa, no a través de Rosetta).

avatar de usuario
marijn

Es posible instalarlo en arm64 brew python normal, debe compilarlo usted mismo.

Si numpy ya está instalado (desde ruedas), deberá desinstalarlo:

pip3 uninstall -y numpy pythran

tuve que compilar numpyque requiere cython y pybind11:

pip3 install cython pybind11

Después numpy se puede compilar:

pip3 install --no-binary :all: --no-use-pep517 numpy

necesidades de scipy pythran (esto debería suceder después de instalar numpy):

pip3 install pythran

Luego necesitamos compilar scipy, depende de fortran y BLAS/LACK:

brew install openblas gfortran

Decir scipy donde se puede encontrar esta biblioteca:

export OPENBLAS=/opt/homebrew/opt/openblas/lib/

Entonces finalmente compilascipy:

pip3 install --no-binary :all: --no-use-pep517 scipy

  • tuve que brew install openblas gfortran antes de numpy… numpy necesitaba openblas al menos

    – Anentrópico

    8 de marzo de 2021 a las 23:03

  • Desafortunadamente, el SciPy la compilación falló con error: Command "ar rcs build/temp.macosx-10.14.6-arm64-3.8/libsuperlu_src.a build/temp.macosx-10.14.6-arm64-3.8/scipy/sparse/linalg/dsolve/SuperLU/SRC/dlaqgs.o [………]" failed with exit status 1 🙁

    – MattiSG

    17 de marzo de 2021 a las 12:27

  • Esta respuesta funcionó para mí en OSX 11.2.3 (20D91) con una MacBook Pro (13 pulgadas, M1, 2020). No obtuve ningún error de compilación como lo hizo @MattiSG

    – Greg Hilton

    1 abr 2021 a las 15:54

  • Necesitaba pip install pythran

    – Mono golfista

    13 de julio de 2021 a las 14:17

  • ¿Por qué deberíamos usar el modo heredado forzado –no-use-pep517?

    – 0-_-0

    31 de agosto de 2021 a las 15:13

Este funcionó para mí después de perder horas:

pip install --pre -i https://pypi.anaconda.org/scipy-wheels-nightly/simple scipy

  • Sí.. Efectivamente. Después de incontables horas. Esto funcionó en MacBook Air (M1, 2020) con BigSur Versión 11.6 (20G165). Si entiendo correctamente, ¿es esto básicamente de los servidores anaconda que proporcionan la versión más estable de SciPy? No estoy seguro, ¿cómo terminó funcionando bien con Appl Silicon? Agradecería mucho su respuesta.

    – Dhruv Patel

    28 de octubre de 2021 a las 1:06

  • ¡La mejor respuesta, funciona fácil!

    – Tendai

    7 de noviembre de 2021 a las 13:22

  • @DhruvPatel Esta parece ser la versión “nocturna” de Scipy, lo que significa que es su última versión de desarrollo. Aparentemente, construyen para ARM para su próxima versión 1.8.0 (que no hicieron para

    – Thomas Klont

    8 de noviembre de 2021 a las 8:31

  • Este método de compilación nocturna también funcionó para scikit-learn en mi Apple M1, pero necesitaba agregar --extra-index al comando: pip install --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple scikit-learn. Fuente: scikit-learn.org/stable/developers/advanced_installation.html

    – Chris Lindgren

    27 de noviembre de 2021 a las 16:10

  • ¿Qué pasa con las personas que no usan la distribución de anaconda? ¿Hay alguna alternativa?

    – Edmondo1984

    15 de diciembre de 2021 a las 12:05


Esta solución trabajado en mi máquina M1 con pyenv:

brew install openblas
OPENBLAS="$(brew --prefix openblas)" pip install numpy scipy

  • Esto funcionó para mí. También pude instalar scikit-learn utilizando el mismo enfoque: OPENBLAS="$(brew --prefix openblas)" pip install numpy scikit-learn

    – Vladímir Ivánov

    1 de agosto de 2021 a las 15:26


Puede instalar miniforge desde https://github.com/conda-forge/miniforge#miniforge3
y luego instalar esos paquetes con,

conda install numpy scipy matplotlib

Para mí las soluciones más fáciles:

brew install scipy

Probablemente sea una buena idea editar la RUTA, por lo que la versión homebrew será la predeterminada.

  • Tenga en cuenta que si hace esto, brew instala python3.9 en esta ubicación /opt/homebrew/Cellar/[email protected]/3.9.6/bin/python3y solo podrá importar scipy si ejecuta este ejecutable de python

    – Cmoses

    8 de julio de 2021 a las 14:42

avatar de usuario
lobo estúpido

Logré instalar scipy en Apple Silicon. Principalmente seguí las instrucciones de lutzroeder aquí: https://github.com/scipy/scipy/issues/13409

Esas instrucciones no fueron exitosas para mí, pero ejecutar ‘pip3 install scipy’ funcionó después. Creo que esto solucionó el problema para mí:

/opt/homebrew/bin/brew install openblas

export OPENBLAS=$(/opt/homebrew/bin/brew --prefix openblas)

export CFLAGS="-falign-functions=8 ${CFLAGS}"

  • Tenga en cuenta que si hace esto, brew instala python3.9 en esta ubicación /opt/homebrew/Cellar/[email protected]/3.9.6/bin/python3y solo podrá importar scipy si ejecuta este ejecutable de python

    – Cmoses

    8 de julio de 2021 a las 14:42

avatar de usuario
julie klimentova

Para aquellos que lo necesitan a corto plazo y no quieren demasiado ajetreo, parece funcionar con python 3.6.4 y scipy 1.5.4 listos para usar (Big Sur 11.5.2, chip M1).

¿Ha sido útil esta solución?