python3 - SciPy compila/instala Mac Osx
python3 numpy (10)
A partir del 20/05/2014, si usa brew, Fortran se instala como parte de gcc. No se requiere un paquete Fortran por separado. Esto es lo que funcionó para mí para instalar numpy:
- instalar brebaje, según la respuesta de abamert (o ver Homebrew )
- instalar gcc (
brew install gcc
) - confirmar que el gcc de brew es el correcto (
which gcc
debe apuntar a / usr / local / bin / gcc) -
export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
(ver Problemas con pip install numpy - RuntimeError: Broken toolchain: no se puede vincular un simple programa en C ) -
pip install numpy
Creé / instalé exitosamente NumPy en mi mac os x para Python 2.7.3. Ahora me gustaría construir / instalar scipy también. Lo descargué desde git hub. Fui al directorio. Ran python setup.py compilación y parecía estar funcionando hasta que se encontró con este error:
customize Gnu95FCompiler
Could not locate executable gfortran
Could not locate executable f95
customize NAGFCompiler
customize AbsoftFCompiler
Could not locate executable f90
Could not locate executable f77
customize IBMFCompiler
Could not locate executable xlf90
Could not locate executable xlf
customize IntelFCompiler
Could not locate executable ifort
Could not locate executable ifc
customize GnuFCompiler
Could not locate executable g77
customize G95FCompiler
Could not locate executable g95
customize PGroupFCompiler
Could not locate executable pgfortran
don''t know how to compile Fortran code on platform ''posix''
building ''dfftpack'' library
error: library dfftpack has Fortran sources but no Fortran compiler found
Pensé que tenía instalado Fortran para NumPy ... ¿no crees? ¿Cómo lo descargaría?
Aquí hay instrucciones detalladas para una instalación limpia en OSX 10.7. Si yo fuera tú, iría por esta ruta en lugar de tratar de descargar y construir las fuentes tú mismo.
http://www.thisisthegreenroom.com/2011/installing-python-numpy-scipy-matplotlib-and-ipython-on-lion/
Creo que su versión de Xcode y OSX es importante . Tenía Xcode: 6.4 y Os X 10.11.1 y seguía recibiendo los mismos mensajes de error (no pude encontrar gfortran, etc.). Intenté muchas cosas, incluida la respuesta exhaustiva de @abarnert, pero la solución para mí fue Xcode actualizado (a 7.1.1).
Me encontré con el mismo problema, usando los siguientes pasos:
1. brew instalar gfortran
2. pip install scipy
entonces está bien.
No creo que este problema sea demasiado complicado en absoluto.
1) Instalar pip
cd /Library/Frameworks/Python.framework/Versions/ ln -s 2.7 Current
cd / usr / bin rm -f python ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python python
2) descargue el huevo de https://pypi.python.org/pypi/setuptools#files sudo sh setuptools-0.6c11-py2.7.egg
3) Simplemente descargue e instale el gfotran desde este enlace: http://r.research.att.com/tools/
4) Después de eso, debe escribir: sudo pip install -U scipy sudo pip install -U numpy sudo pip install -U matplotlib
Con suerte, debes tener todo lo que quieres tener.
Para OSX yosemite y posiblemente también versiones anteriores de osx, es posible que desee descargar e instalar el compilador pip install scipy
antes de ejecutar pip install scipy
. Para descargar el último compilador fortran, solo vaya al siguiente enlace:
Parece que su problema real fue solo un error de descarga intermitente de Sourceforge:
curl: (33) HTTP server doesn''t seem to support byte ranges. Cannot resume. Error: Download failed: downloads.sf.net/project/machomebrew/Bottles/…
Homebrew solo debería recuperarse automáticamente de este error si intentas brew install gfortran
nuevo. Entonces, eso es lo primero que debes intentar.
Si eso no funciona, compruebe si brew doctor
encuentra algún problema, luego brew install -d gfortran
para ver dónde está almacenando el archivo parcialmente descargado para poder eliminarlo manualmente y volver a intentarlo.
Si todo lo demás falla, puede forzarlo a no usar la botella utilizando --build-from-source
. Por supuesto, la construcción desde la fuente lleva mucho más tiempo que la instalación de una botella binaria, pero debería dar el mismo resultado.
Tenía instalado gfortran y el binario era gfortran-4.2 . Entonces, cada vez que intentaba instalar SciPy no se podía encontrar el compilador porque estaba tratando de usar gfortran .
Lo que hice fue crear un enlace simbólico de gfortran-4.2 a gfortran .
Para encontrar dónde debe crear la ejecución del enlace simbólico:
$ which gfortran-4.2
/usr/local/bin/gfortran-4.2
Luego, haz un enlace simbólico:
ln -s /usr/local/bin/gfortran-4.2 /usr/local/bin/gfortran
Tengo Homebree instalado, así que voy a intentar: $ brew install gfortran espero que esto funcione
Tu problema es que necesitas instalar un compilador de Fortran para construir scipy
.
Además, si ya tiene un numpy
creado con el soporte de Fortran desactivado, es posible que deba reemplazarlo. Algunas de las versiones de Python preinstaladas de Apple tienen una numpy
tan numpy
preinstalada.
La forma más fácil de obtener Fortran es con Homebrew . Como dicen los documentos , primero debe instalar Xcode y sus herramientas de línea de comandos. (La forma de instalar las herramientas de línea de comandos cambia con casi todas las versiones principales de Xcode, de modo que consulte los documentos vinculados para obtener una explicación actualizada). Luego, instale Homebrew. La URL de instalación ha cambiado varias veces, por lo tanto, consulte la página de inicio de Homebrew o las instrucciones de instalación ( Homebrew ), pero será algo así como:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Entonces:
brew install gcc
(Tenga en cuenta que hasta algún momento en 2014, gfortran
era una receta separada de gcc
, por lo que el comando fue brew install gfortran
. Pero si lo intenta ahora, obtendrá un error que dice "GNU Fortran ahora se proporciona como parte de GCC, y se puede instalar con: brew install gcc
".)
Realmente quieres usar pip
para instalar scipy
, así que si no tienes eso, scipy
primero. Python preinstalado de Apple, al menos en 10.7 y 10.8, incluye easy_install
pero no pip
, por lo que la forma más fácil de hacerlo es:
sudo easy_install pip
Sin embargo, es posible que desee considerar el uso de un virtualenv
lugar de una instalación global (en cuyo caso también desea eliminar el sudo
en los siguientes comandos).
Ahora que tienes gfortran
y pip
, todo lo que tienes que hacer es esto:
sudo pip install --upgrade numpy
sudo pip install scipy
Advertencias:
Las instrucciones anteriores son para las versiones preinstaladas de Apple de Python. Si está usando una versión diferente de Python, realmente debería considerar no hacerlo. Mantener las rutas, paquetes instalados, etc. sincronizados es una pesadilla. La excepción a esto es si desea una versión de Python 3.x, en cuyo caso instalarla desde python.org o Homebrew es perfectamente razonable. No habrá colisiones, porque
python
,pip2.7
, etc. serán para Python de Apple;python3
,pip3.3
, etc. para la versión 3.x.Si ya tiene
pip
, pero teme que no esté actualizado,pip install --upgrade pip
. (Además de los beneficios de seguridad y robustez, esto puede ahorrarle mucho tiempo haciéndolo compatible con ruedas binarias para algunos de los módulos científicos u otros módulos).Para la mayoría de las instalaciones que no sean de Apple Python (y tal vez incluso de Apple en 10.9 o 10.10; no he comprobado), no debe usar
easy_install
para instalarpip
. Sigue las instrucciones de instalación depip
. Pero primero asegúrate de que aún no lo tienes.- Si está utilizando
virtualenv
/venv
, sus entornos virtuales ya incluiránpip
. - Python 3.4 o posterior puede (y lo hará, si procede de un instalador de python.org) incluir un bootstrap
pip
. Si su 3.4+ aún no tienepip
, es posible que deseepython -m ensurepip
para instalarlo. - Algunas instalaciones de terceros, como Homebrew o ActiveState, incluyen
pip
.
- Si está utilizando
Para Python 3.3 o posterior, es posible que desee utilizar el
venv
incorporado en lugar devirtualenv
.Si está usando MacPorts, Fink, gentoo-alt, etc., debe instalar el paquete
scipy
que viene con su administrador de paquetes, y arrastrará cualquier otra cosa que necesite (tal vez incluso incluyendo la reconstrucción de Python y GCC).Las instalaciones binarias de terceros como Enthought y ActiveState ya pueden incluir
scipy
y todo lo demás que necesita. De lo contrario, las instrucciones son básicamente las mismas que las anteriores, pero deberá adivinar qué pasos debe omitir o seguir, sisudo
, etc.
Si está utilizando una versión de Python 2.7 que no es de Apple y desea evitar los problemas de PATH, debe hacer dos cosas:
Primero, no instale ningún paquete de Python que incluya scripts o binarios (incluido el propio pip
) en más de un Python. Por ejemplo, si instala ipython
para Apple 2.7 y Homebrew 2.7, ambos intentarán crear scripts llamados /usr/local/bin/ipython
y /usr/local/bin/ipython-2.7
. Si tiene suerte, una instalación fallará. De lo contrario, ambos tendrán éxito, uno terminará sobrescribiendo al otro y no tendrá forma de ejecutar la versión sobrescrita.
En segundo lugar, asegúrese de que la ruta de acceso a los scripts y binarios alternativos de Python se encuentre antes que Apple en el PATH. Dependiendo de qué Python alternativo haya instalado y qué instrucciones siguió, esto podría ser:
-
/usr/local/bin
-
/Library/Frameworks/Python.framework/Versions/2.7/bin
-
/usr/local/share/python2.7/bin
-
/usr/local/Cellar/python/2.7.3/bin
- algo más
Cualquiera que sea la ruta, debe editar su variable PATH.
Si desea afectar las aplicaciones de GUI (y LaunchAgents, etc.), aparentemente ya no hay una forma admitida de hacerlo, pero el QA1067 desuso todavía parece funcionar en Lion. También es lo que sugieren las Preguntas FAQ Homebrew y las Preguntas Frecuentes de Python .
Si solo le importan las sesiones de la línea de comandos (tanto Terminal.app como ssh remota), en su lugar puede simplemente hacer la operación estándar de Unix de editar el archivo de perfil apropiado. El archivo de perfil apropiado depende de lo que quiera afectar. (¿Todos los usuarios o solo un usuario? Bash o cualquier shell? Y demás). Si no sabes cuál quieres, realmente deberías investigar un poco. Si no quieres molestarte en aprender, simplemente haz ~/.profile
y luego no te quejes si no fue lo que querías.
De cualquier manera, debe asegurarse de que la ruta adecuada venga antes de /usr/bin
en la RUTA. Entonces, por ejemplo, puede agregar lo siguiente a ~/.profile
:
PATH=/usr/local/bin:$PATH
export PATH
(Por supuesto, necesitará crear un nuevo shell de Terminal o fuente del script antes de que entre en vigencia).
Si usa homebrew
, brew doctor
le dirá si lo hizo bien.