web-dev-qa-db-fra.com

framework python matplotlib sous macosx?

Je reçois cette erreur:

/sw/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py:235: UserWarning: Python n'est pas installé en tant que framework. Le MacOSX Le backend peut ne pas fonctionner correctement si Python n’est pas installé en tant que cadre. Veuillez consulter la documentation Python pour plus d’informations sur installer Python en tant que framework sur Mac OS X

J'ai installé python27 en utilisant fink et il utilise la structure par défaut matplotlib en utilisant le framework macosx.

54
Neil G

Python peut être construit et installé sur Mac OS X de deux manières. L'une consiste en une bibliothèque partagée Unix-y traditionnelle et plate. L'autre est connue sous le nom d'installation framework, une structure de fichier similaire à celle d'autres frameworks sous OS X dans laquelle tous les répertoires de composants (include, lib, bin) du produit sont installés en tant que sous-répertoires dans le répertoire framework principal. Le projet Fink installe Pythons à l'aide de la méthode de bibliothèque partagée Unix. La plupart des autres distributeurs, y compris les Pythons fournis par Apple dans OS X, les installateurs python.org et le projet MacPorts, installent les versions framework de Python. L'un des avantages d'une installation d'infrastructure est qu'il fonctionnera correctement avec divers appels d'API OS X nécessitant une connexion de gestionnaire de fenêtres (généralement des interfaces liées à une interface graphique), car l'interpréteur Python est présenté sous la forme d'un ensemble d'applications dans l'infrastructure.

Si vous avez besoin des fonctions de matplotlib qui nécessitent les fonctions de l’interface graphique, l’approche la plus simple consiste peut-être à passer à MacPorts, qui inclut également matplotlib (port py27-matplotlib) et ses dépendances. Si tel est le cas, veillez à ne pas mélanger les packages Fink et MacPorts. Il est préférable de rester avec l'un ou l'autre, sauf si vous êtes vraiment prudent. Ajustez votre chemin Shell en conséquence. il serait plus sûr de supprimer tous les packages Fink et d'installer les versions de MacPorts.

16
Ned Deily

Certains utilisateurs peuvent ne pas vouloir modifier le backend de tous leurs scripts. Cette page - http://matplotlib.org/faq/usage_faq.html#what-is-a-backend - dit une autre façon: 

import matplotlib
matplotlib.use('TkAgg')

Vous devez le faire avant d'importer un sous-package de matplotlib ou un package tiers qui dépend de matplotlib.

59
Iron Pillow

Vous pouvez éventuellement utiliser le backend Agg qui ne nécessite aucune installation supplémentaire. Il suffit de mettre backend : Agg dans ~/.matplotlib/matplotlibrc

28
Jonathan

Cela s’affiche pour moi lors du passage à OSX 10.10 (Yosemite). Je l'ai corrigé en basculant sur le 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

Si le fichier matplotlibrc n’y est pas trouvé, mettez matplotlibrc et vérifiez l’emplacement avec:

import matplotlib as mpl
mpl.get_configdir()
10
David M. Rogers

J'ai rencontré ce problème en utilisant la distribution Anaconda de Python sur mon ordinateur et un environnement virtuel de conda avec Python 3.4. 

Après avoir fait "pip install matplotlib", je pourrais importer finement matplotlit dans mon code, mais cela provoquerait une erreur lorsque je tentais de tracer des images. 

Je suis donc retourné au terminal et ai utilisé la commande conda recommandée pour Anaconda Python ("conda install matplotlib"), et le problème a été résolu (gardez à l'esprit que tout cela était dans un environnement que j'avais créé à l'aide de l'outil de commande conda à http://conda.pydata.org/docs/using/envs.html ). Mon système fonctionne sous Mac OSX 10.10.5.

8
Wendy Jan

Importer la bibliothèque en suivant les séquences de code fonctionne pour moi. Avec cela n'a pas besoin de créer un nouveau dossier:

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
4
after aver

En général, j'ai utilisé 

import matplotlib
matplotlib.use('Agg')

pour résoudre ceci. Récemment cependant, j'ai eu cette erreur de cadre lors de l'exécution de tests sur une base de code sur laquelle je ne devrais apporter que des modifications très limitées. Dans ce cas, suivez les conseils de la documentation OSX de matplotlib concernant la configuration de mon environnement virtuel:

If you are on Python 3, use venv instead of virtualenv:

python -m venv my-virtualenv
source my-virtualenv/bin/activate

à partir de: https://matplotlib.org/faq/osx_framework.html

2
Max Power

J'utilise OSX 10.14 avec Python 3.7.1 installé avec pyenv .

Je ne pouvais obtenir aucun des moteurs répertoriés dans les autres réponses pour travailler pour moi (TkAgg, WXAgg, macosx).

Ce qui a fonctionné, c’est le nouveau backend Qt5Agg, installé avec pip install pyqt5, puis en créant un fichier ~/.matplotlib/matplotlibrc contenant backend: Qt5Agg (conformément aux autres réponses).

2
Derek Hill

Si vous rencontrez le même problème même après l’ajout de "backend: TkAgg" dans ~/.matplotlib/matplotlibrc, cela pourrait poser un problème avec votre environnement virtuel.

Donc si vous êtes sur python3, utilisez venv au lieu de virtualenv.

Pour utiliser venv avec python3, utilisez python -m venv my-virtualenv pour créer un environnement virtuel et utilisez source my-virtualenv/bin/activate pour activer virtualenv.

Le repos est identique à virtualenv. Sinon, utilisez PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install x.x.x si vous souhaitez utiliser virtualenv comme environnement virtuel.

2
Sachin

Le simple fait de créer une nouvelle commande pour lancer python dans ~/.bash_profile fera l'affaire.

alias vpython3 =/Bibliothèque/Frameworks/Python.framework/Versions/3.6 (remplacez-le par votre propre version de Python)/bin/python3

puis 'source ~/.bash_profile' et utilisez vpython3 pour lancer python3.

Explication: Python est actuellement installé par défaut en tant que framework sur mac, mais l'utilisation de virtualenv lierait votre commande python3 sous l'environnement virtuel créé, au lieu du répertoire framework ci-dessus ('quel python3' dans le terminal et vous le verrez). Peut-être que Matplotlib doit trouver le bin/include/lib /, etc. dans le framework python.

0
Alchanic Liu

Consultez la FAQ officielle sur Travailler avec Matplotlib sur OSX. Il a plusieurs solutions en fonction de votre situation. Celui qui a fonctionné pour moi est:

  • Étape 1: Ouvrir le terminal 
  • Étape 2: Exécutez conda install python.app pour installer python.app 
  • Étape 3: exécutez un script python avec pythonw, par exemple. pythonw my_script.py
0
Jonny Brooks