2010-11-09 15 views
30

sto ottenendo questo errore:framework python matplotlib sotto 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

ho installato python27 usando fink e sta utilizzando il matplotlib predefinita utilizza MacOSX quadro.

+0

Strano, ero sicuro di aver messo la fink. –

+0

Perché hai usato fink per installare python? Python viene fornito con OS X. –

+0

Avevo bisogno di varie altre cose come scipy, matplotlib e ipython. –

risposta

10

Ci sono due modi in cui Python può essere costruito e installato su Mac OS X. Uno è come una libreria condivisa tradizionale Unix-y piatta. L'altra è nota come installazione framework, un layout di file simile ad altri framework su OS X in cui tutte le directory dei componenti (include, lib, bin) per il prodotto sono installate come sottodirectory nella directory principale del framework. Il progetto Fink installa Python usando il metodo della libreria condivisa Unix. La maggior parte degli altri distributori, inclusi Pythons forniti da Apple in OS X, i programmi di installazione python.org e il progetto MacPorts, installano le versioni framework di Python. Uno dei vantaggi di un'installazione di framework è che funzionerà correttamente con varie chiamate API OS X che richiedono una connessione a gestore di finestre (in genere interfacce basate sulla GUI) poiché l'interprete Python è impacchettato come pacchetto di app all'interno del framework.

Se sono necessarie le funzioni in matplotlib che richiedono le funzioni della GUI, l'approccio più semplice potrebbe essere quello di passare a MacPorts che contiene anche matplotlib (port py27-matplotlib) e le sue dipendenze. In tal caso, fare attenzione a non mescolare i pacchetti tra Fink e MacPorts. È meglio restare con l'una o l'altra a meno che tu non sia molto attento. Regola il tuo percorso shell di conseguenza; sarebbe più sicuro rimuovere tutti i pacchetti Fink e installare le versioni di MacPorts.

+1

Cosa consiglieresti a qualcuno che ha installato sul suo nuovo Mac tutto usando Fink (python2.7, numpy-py27, matplotlib-py27, ipython-py27)? Ho anche bisogno di alcuni pacchetti che posso ottenere solo su Fink e che non esistono su MacPorts. – Rok

+0

Probabilmente sarebbe meglio chiedere su una delle mailing list matplotlib o numpy: http://sourceforge.net/mail/?group_id=80706 o http://www.scipy.org/Mailing_Lists –

+1

Se stai usando 'pyenv' puoi anche fare una installazione' framework' di Python, come questa: 'env PYTHON_CONFIGURE_OPTS =" - enable-framework "pyenv install 2.7.12' – Leif

9

Questo mi viene in mente quando si passa a OSX 10.10 (Yosemite). L'ho risolto passando al backend 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

Se il file matplotlibrc non viene trovato, messo matplotlibrc e controllare la posizione con:

import matplotlib as mpl 
mpl.get_configdir() 
17

Opzionalmente è possibile utilizzare il Agg backend, che non richiede alcuna installazione supplementare di nulla . Basta inserire backend : Agg in ~/.matplotlib/matplotlibrc

+2

Questa risposta ha funzionato bene con me quando si usa' pyenv'. – Charlie

33

Alcuni utenti potrebbero non voler modificare il back-end per tutti i loro script. Questa pagina - http://matplotlib.org/faq/usage_faq.html#what-is-a-backend - dice un altro modo:

import matplotlib 
matplotlib.use('TkAgg') 

Dovete fare questo prima di importare un sottopacchetto di matplotlib o di un pacchetto di terze parti che dipende matplotlib.

6

Ho riscontrato questo problema utilizzando la distribuzione Anaconda di Python sul mio computer e un ambiente virtuale con Python 3.4.

Dopo aver eseguito "pip install matplotlib", ho potuto importare matplotlit nel mio codice bene, ma darebbe un errore quando ho provato a tracciare le immagini.

Quindi sono tornato al terminale e ho utilizzato il comando conda consigliato per Anaconda Python ("conda install matplotlib") e il problema si è risolto (tenere presente che questo era tutto all'interno di un ambiente che avevo creato utilizzando il conda strumento di comando su http://conda.pydata.org/docs/using/envs.html). Il mio sistema esegue Mac OSX 10.10.5.

+0

Anche se questo funziona per me. Noto che, installando lo stesso pacchetto usando 'conda' e' pip' allo stesso tempo, creeremo molti pacchetti duplicati in 'conda list'. – taper

0

Consulta le domande frequenti ufficiali su Working with Matplotlib on OSX. Ha diverse soluzioni a seconda della situazione. Quello che ha funzionato per me è:

  • Fase 1: Aprire terminale
  • Fase 2: Eseguire conda install python.app installare python.app
  • Fase 3: eseguire script python con pythonw esempio pythonw my_script.py
0

Se siete di fronte lo stesso problema anche dopo l'aggiunta di "backend: TkAgg" in ~/.matplotlib/matplotlibrc le loro forze un problema con il vostro ambiente virtuale.

Quindi se siete su python3 usate venv invece di virtualenv.

Per utilizzare venv con python3 utilizzare python -m venv my-virtualenv per creare un ambiente virtuale e utilizzare source my-virtualenv/bin/activate per attivare virtualenv.

Il resto è uguale a virtualenv. In caso contrario, utilizzare PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install x.x.x se si desidera utilizzare virtualenv come ambiente virtuale.

Problemi correlati