2010-11-09 9 views
30

estoy recibiendo este error:python matplotlib framework under macosx?

/sw/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py:235: UserWarning: Python is not installed as a framework. The MacOSX backend may not work correctly if Python is not installed as a framework. Please see the Python documentation for more information on installing Python as a framework on Mac OS X

He instalado python27 usando Fink y se está utilizando el matplotlib por defecto está utilizando marco MacOSX.

+0

Extraño, estaba seguro de que puse Fink allí. –

+0

¿Por qué usaste fink para instalar Python? Python se envía con OS X. –

+0

Necesitaba otras cosas como scipy, matplotlib e ipython. –

Respuesta

10

Hay dos maneras de construir e instalar Python en Mac OS X. Una es como una biblioteca compartida plana tradicional de Unix-y. La otra se conoce como instalación framework, un diseño de archivo similar a otros marcos en OS X donde todos los directorios de componentes (include, lib, bin) para el producto se instalan como subdirectorios en el directorio principal del marco. El proyecto Fink instala Pythons utilizando el método de biblioteca compartida de Unix. La mayoría de los otros distribuidores, incluyendo el pitones suministrado por Apple en OS X, los instaladores python.org, y el proyecto MacPorts, instalar framework versiones de Python. Una de las ventajas de una instalación de infraestructura es que funcionará correctamente con varias llamadas a la API de OS X que requieren una conexión de administrador de ventana (generalmente interfaces relacionadas con GUI) porque el intérprete de Python está empaquetado como un paquete de aplicaciones dentro del marco.

Si necesita las funciones en matplotlib que requieren las funciones de la GUI, el enfoque más simple puede ser cambiar a MacPorts, que también incluye los paquetes matplotlib (port py27-matplotlib) y sus dependencias. Si es así, tenga cuidado de no mezclar paquetes entre Fink y MacPorts. Lo mejor es seguir con uno o el otro a menos que sea realmente cuidadoso. Ajuste su camino de shell en consecuencia; sería más seguro eliminar todos los paquetes de Fink e instalar versiones de MacPorts.

+1

¿Qué recomendaría entonces a alguien que instaló en su nueva mac todo utilizando Fink (python2.7, numpy-py27, matplotlib-py27, ipython-py27)? También necesito algunos paquetes que solo puedo obtener en Fink y que no existen en MacPorts. – Rok

+0

Probablemente sea mejor preguntar en una de las listas de correo matplotlib o numpy: http://sourceforge.net/mail/?group_id=80706 o http://www.scipy.org/Mailing_Lists –

+1

Si está utilizando 'pyenv' también puedes hacer una instalación' framework' de Python, así: 'env PYTHON_CONFIGURE_OPTS =" - enable-framework "pyenv install 2.7.12' – Leif

9

Esto se muestra para mí cuando se cambia a OSX 10.10 (Yosemite). Lo arreglé cambiando al backend de WXAgg.

fink install wxpython300-py27 
mkdir ~/.matplotlib 
echo "backend : WXAgg" >>~/.matplotlib/matplotlibrc 

http://matplotlib.org/1.3.0/faq/usage_faq.html#what-is-a-backend

Si el archivo matplotlibrc no se encuentra allí, puso matplotlibrc y compruebe la ubicación con:

import matplotlib as mpl 
mpl.get_configdir() 
17

Opcionalmente se puede utilizar el backend Agg que no requiere ninguna instalación adicional de nada . Simplemente ponga backend : Agg en ~/.matplotlib/matplotlibrc

+2

Esta respuesta funcionó bien para mí cuando usé' pyenv'. – Charlie

33

Es posible que algunos usuarios no deseen cambiar el servidor para todos sus scripts. Esta página - http://matplotlib.org/faq/usage_faq.html#what-is-a-backend - dice de otra manera:

import matplotlib 
matplotlib.use('TkAgg') 

Tienes que hacer esto antes de importar un subpaquete de matplotlib o un paquete de terceros que depende de matplotlib.

6

llegué a este problema mediante la distribución de Python Anaconda en mi equipo y un entorno virtual con Conda Python 3.4.

Después de hacer "pip install matplotlib", podía importar matplotlit en mi código fino, pero daría un error cuando traté de trazar imágenes.

Así que volví a la Terminal y usé el comando conda recomendado para Anaconda Python ("conda install matplotlib"), y el problema se resolvió solo (recuerde que todo esto fue dentro de un entorno que había creado usando la conda herramienta de comando en http://conda.pydata.org/docs/using/envs.html). Mi sistema ejecuta Mac OSX 10.10.5.

+0

Aunque esto funciona para mí. Observé que instalar el mismo paquete usando 'conda' y' pip' al mismo tiempo crearía una gran cantidad de paquetes duplicados en 'conda list'. – taper

0

Consulte las preguntas frecuentes oficiales para Working with Matplotlib on OSX. Tiene varias soluciones según su situación. El que trabajó para mí es:

  • Paso 1: Abrir el terminal
  • Paso 2: Ejecutar conda install python.app instalar python.app
  • Paso 3: Ejecutar script en Python con pythonw por ejemplo, pythonw my_script.py
0

Si se enfrentan el mismo problema, incluso después de la adición de "backend: TkAgg" en ~/.matplotlib/matplotlibrc su poder un problema con su entorno virtual.

Así que si estás en python3 usa venv en lugar de virtualenv.

Para usar venv con python3 use python -m venv my-virtualenv para crear un entorno virtual y use source my-virtualenv/bin/activate para activar el virtualenv.

El resto es igual que virtualenv. De lo contrario, use PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install x.x.x si desea utilizar virtualenv como su entorno virtual.

Cuestiones relacionadas