Pregunta

Estaba tratando de instalar matplotlib en Mac Osx Lion. Intenté usar el binario que se encuentra en el sitio de SourceFourge, pero obtuve este error: "Matplotlib requiere el sistema Python 2.7 para instalar".

Fui a la terminal y escribí a Python: Versión y sus requisitos verifican los requisitos.

Después de esto intenté usar el PIP, y mientras lo hacía, recibí el siguiente error:

"src/_image.cpp: 908: error: uso no válido del tipo incompleto 'struct png_info_def'"

¿Puedes darme pistas sobre cómo instalarlo?

Muchas gracias.

EDITAR: Encontré una manera, sin tener que instalar una nueva versión de Python:

http://the.taofmac.com/space/blog/2011/07/24/2222

¿Fue útil?

Solución

Puede probar con una distribución de pitón "oficial", Apple podría haber modificado la suministrada. Puedes encontrar el 2.7 aquí: http://www.python.org/download/ Es posible que deba reinstalar Numpy y Afterwords: http://sourceforge.net/projects/numpy/files/numpy/1.6.1/

Sugeriría instalar Scipy también avíseme si funciona;)

Otros consejos

Esto se debe a un cambio en la API para libpng v1.5 (que se incluye con Mac Osx Lion). Los cambios ya se han empujado aguas arriba, por lo que deberá compilar desde el repositorio ascendente hasta la próxima versión.

Puedes seguir las instrucciones en http://jholewinski.wordpress.com/2011/07/21/installing-matplotlib-on-s-x-x-10-7-with-homebrew/

Seguí esto Instrucciones de la página. Me quedé atrapado en

pip install -e git+https://github.com/matplotlib/matplotlib#egg=matplotlib-dev

Entonces lo hice:

git clone https://github.com/matplotlib/matplotlib.git
cd matplotlib
python setup.py build
python setup.py install

Verifiqué mi instalación escribiendo en la terminal:

python
import matplotlib
print matplotlib.__version__
print matplotlib.__file__

Obtuve la versión 0.10.0 Dev (a partir de este escrito) y Path/USR/Local/Cellar/...

Recomendaría usar MacPorts, debe ocuparse de las dependencias y sería independiente de la versión del sistema Python.

EDITAR: Solo algunas aclaraciones, teniendo en cuenta los comentarios de esta respuesta.

¿Por qué usar MacPorts (u otro instalador)? Debido a que se ocupan de las dependencias, proporcionan funcionalidad para desinstalar y cambiar entre versiones (he usado este último con éxito para GCC y Python). Y porque la ubicación de instalación predeterminada no es la ubicación ejecutable del sistema. Anular el sistema Python puede romper aplicaciones que se basan en él (esto es ciertamente cierto en muchas distribuciones de Linux, tal vez menos en Mac OS X).

¿Cuándo es particularmente útil? Cuando desea instalar en la parte superior de una versión de Python que es diferente al sistema Python, y cuando tiene extensiones no Python (C, C ++, Fortran ...).

¿Qué es el lado de abajo? Como @Trond ha mencionado en los comentarios, es bueno si está de acuerdo con las compilaciones predeterminadas de los paquetes. No tiene un mango sobre la configuración o los indicadores del compilador como lo haría si construyera desde la fuente.

Una buena alternativa a MacPorts es soplón, que parece darle más control (construir desde la fuente). Todavía no estoy seguro de que esté completamente listo para Mac OS X Lion.

Sé que llevará mucho más tiempo, pero recomendaría instalar Python, Numpy y Matplotlib de la fuente para garantizar que tenga consistencia en su sistema. Por el error, podría parecer que tiene un problema con el soporte de libpng. Tengo un escrito a "Cómo instalar Python Dev Tools en Mac OSX"que puede encontrar útil. Contiene instrucciones sobre cómo instalar Python, Numpy, Matplotlib y todas las dependencias necesarias. Entiendo que está trabajando con Python 2.7 y las instrucciones que enumeran son para Python 2.6.5, pero sería la El mismo enfoque. Espero que lo hagas que funcione.

Simplemente puede instalar la versión Python 2.6 de Matplotlib, suponiendo que Python2.6 se incluya con Lion (Py2.5 y 2.6 se incluye con Mac OS 10.6 "Leopardo Snow" - Intente escribir Python2.6 para averiguar si esa versión está instalada).

En MacPorts hace esto a través de algo como:

sudo port install py26-matplotlib

donde py26 -... (o py25 -..., py27 -... etc.) indica para qué versión de Python está destinada. (Verifique la lista de paletas/puertos para obtener el nombre correcto del paquete, en caso de que adivine mal)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top