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).
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).
Este funcionó para mí después de perder horas:
pip install --pre -i https://pypi.anaconda.org/scipy-wheels-nightly/simple scipyAdemás, si alguien tiene este mensaje de error>
########### CLIB COMPILER OPTIMIZATION ########### Platform : Architecture: aarch64 Compiler : clang CPU baseline : Requested : 'min' Enabled : none Flags : none Extra checks: none CPU dispatch : Requested : 'max -xop -fma4' Enabled : none Generated : none CCompilerOpt.cache_flush[809] : write cache to pathEncontré esta solución antes de compilar numpy y scipy
Análisis de las razones: del mensaje de error anterior, puede ver que el último error muestra que clang tiene un error, por lo que se especula que debería ser un error causado por el compilador, porque la nueva versión de la herramienta de comando xcode usa el armar la versión del método de compilación de forma predeterminada, y si queremos usar la arquitectura Para x86, debemos configurar manualmente la arquitectura específica a través de variables de entorno.
export ARCHFLAGS="-arch x86_64"ejemplo:
3c790c45799ec8c598753ebb22/build/temp.macosx-10.14.6-arm64-3.8/ccompiler_opt_cache_clib.py ---------------------------------------- ERROR: Command errored out with exit status 1: /Users/daniel_edu/Projects/PERSONAL/great_expectation_demo/.env/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/zb/c_b9kh2x1px7vl5683rwz8fr0000gn/T/pip-install-y8alaej_/numpy_3d813a3c790c45799ec8c598753ebb22/setup.py'"'"'; __file__='"'"'/private/var/folders/zb/c_b9kh2x1px7vl5683rwz8fr0000gn/T/pip-install-y8alaej_/numpy_3d813a3c790c45799ec8c598753ebb22/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/zb/c_b9kh2x1px7vl5683rwz8fr0000gn/T/pip-record-q9vraevr/install-record.txt --single-version-externally-managed --compile --install-headers /Users/daniel_edu/Projects/PERSONAL/great_expectation_demo/.env/include/site/python3.8/numpy Check the logs for full command output. (.env) ➜ great_expectation_demo git:(master) ✗ export ARCHFLAGS="-arch x86_64" (.env) ➜ great_expectation_demo git:(master) ✗ pip install --no-binary :all: --no-use-pep517 numpy Collecting numpy Using cached numpy-1.21.5.zip (10.7 MB) Preparing metadata (setup.py) ... done Skipping wheel build for numpy, due to binaries being disabled for it. Installing collected packages: numpy Running setup.py install for numpy ... done Successfully installed numpy-1.21.5Logré 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}"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 numpy , que requiere cython y pybind11 :
pip3 install cython pybind11 Entonces numpy se puede compilar:
pip3 install --no-binary :all: --no-use-pep517 numpy Scipy necesita pythran (esto debería suceder después de instalar numpy):
pip3 install pythranLuego necesitamos compilar scipy, depende de fortran y BLAS/LACK:
brew install openblas gfortran Dile scipy dónde puede encontrar esta biblioteca:
export OPENBLAS=/opt/homebrew/opt/openblas/lib/ Luego, finalmente compila scipy :
pip3 install --no-binary :all: --no-use-pep517 scipyPara mí las soluciones más fáciles:
brew install scipyProbablemente sea una buena idea editar la RUTA, por lo que la versión homebrew será la predeterminada.
Esta solución funcionó en mi máquina M1 con pyenv :
brew install openblas OPENBLAS="$(brew --prefix openblas)" pip install numpy scipyPuede instalar miniforge desde https://github.com/conda-forge/miniforge#miniforge3 y luego instalar esos paquetes con,
conda install numpy scipy matplotlib