Que faire si vous obtenez l'erreur RuntimeError: Python n'est pas installé en tant que framework lorsque vous essayez d'utiliser matplitlib et pylab dans Python 3.3

Contexte

J'ai donc décidé de faire du machine learning en utilisant Scikit-learn. J'ai également décidé d'utiliser matplotlib car je voulais visualiser la figure. Lorsque j'ai importé pylab pour utiliser facilement matplotlib, j'ai eu l'erreur RuntimeError: Python n'est pas installé en tant que framework, j'ai donc changé les paramètres de matplotlib et résolu le problème.

Procédure d'installation

$ pip install scikit-learn
$ brew install freetype
$ sudo pip install python-dateutil
$ sudo pip install pyparsing
$ sudo pip install matplotlib

Pour installer matplotlib

Est nécessaire. Il y a beaucoup d'autres choses dont vous avez besoin. Pour plus de détails, voir Page officielle

Si vous installez freetype, la libpng dépendante sera également incluse.

Référence http://djakarta-trap.net/blog/2013/06/07/install_matplotlib/

un problème est survenu

Dans un environnement de dialogue

ipython3


import pylab

Puis

RuntimeError: Python is not installed as a framework. The
Mac OS X backend will not be able to function correctly if Python
is not installed as a framework. See the Python documentation for
more information on installing Python as a framework on Mac OS X.
Please either reinstall Python as a framework, or try one of the other 
backends.

Erreur est survenue.

Enquête

Tout d'abord, j'ai recherché des personnes qui avaient des problèmes avec des erreurs similaires et qui les ont résolues.

Discussion sur un projet utilisant matplotlib appelé yt http://hg.yt-project.org/yt/issue/642/cannot-import-pylab-on-os-x-using

Article de blog japonais qui a rencontré le même problème http://asahima.hatenablog.com/entry/2013/10/11/201119

Problèmes de matplotlib sur le github d'origine https://github.com/matplotlib/matplotlib/issues/2361

Apparemment, cela n'a pas été résolu même en octobre 2013.

Cause

Le backend de dessin d'image matplotlib (référence http://matplotlib.org/faq/usage_faq.html#what-is-a-backend) est "macosx" qui est rendu en utilisant l'API de Cocoa par défaut. GTK Agg et Qt4 Agg ne sont pas des backends par défaut. Bien sûr, lorsque vous utilisez Linux ou Windows, définissez un backend autre que macosx.

Mon raisonnement

Le problème est que dans mon environnement, j'ai utilisé pyenv pour installer Python 3.3 dans un emplacement différent de celui d'origine sur le système OSX. Dans ce cas, il peut ne pas être possible de dessiner avec l'API de Cocoa, donc lors de l'importation de pylab, une erreur se produira au cas où.

La spécification d'un backend autre que macosx résout le problème.

Solution

Puisque vous avez installé matplotlib avec pip, vous devriez avoir un répertoire appelé ~ / .matplotlib. Créez-y un fichier appelé matplotlibrc.

~/.matplotlib/matplotlibrc


backend : TkAgg

Et spécifiez d'utiliser TkAgg comme backend.

Comment écrire la référence matplotlibrc http://matplotlib.org/users/customizing.html

Expérience

J'ai exécuté le code qui visualise le résultat de sklearn dans pylab, qui est présenté dans cet article de blog http://sucrose.hatenablog.com/entry/2013/05/25/133021, dans un environnement interactif.

from sklearn.datasets import load_digits
import pylab as pl 
digits = load_digits()
pl.gray() 
pl.matshow(digits.images[0]) 
pl.show() 

figure_2.png

De cette façon, j'ai pu dessiner une belle figure même avec TkAgg.

Recommended Posts

Que faire si vous obtenez l'erreur RuntimeError: Python n'est pas installé en tant que framework lorsque vous essayez d'utiliser matplitlib et pylab dans Python 3.3
Que faire si vous obtenez l'erreur "Erreur: opencv3: Ne prend pas en charge la construction des wrappers Python 2 et 3" lors de l'installation d'openCV 3
Que faire si vous obtenez une erreur de remplacement obligatoire `get_config` lorsque vous essayez de model.save avec Keras
[Mac OS] Que faire lorsque Python n'est pas installé en tant que framework S'affiche lors de l'importation de matplot lib.
Que faire si vous obtenez une erreur en essayant d'envoyer un message dans tasks.loop () immédiatement après le démarrage
Que faire si vous obtenez moins zéro en Python
Que faire lorsque swagger-codegen est terminé avec python et Erreur d'importation: aucun module nommé n'apparaît
Que faire si vous obtenez une erreur non définie lorsque vous essayez d'utiliser pip avec pyenv
Que faire si vous obtenez une erreur lors du chargement de mnist
Que faire si vous obtenez une erreur "Aucune version trouvée" sur pipenv
Que faire si vous obtenez un avertissement "Mauvaise plateforme Python" lors de l'utilisation de Python avec l'EDI NetBeans
Que faire si vous obtenez `locale.Error: unsupported locale setting` lors de l'obtention de la date du jour en Python
Que faire si vous obtenez une erreur lors de l'installation de python avec pyenv
Que faire si vous obtenez une erreur d'autorisation refusée (clé publique) lorsque vous essayez de tirer sur le hub Git
Que faire si vous obtenez «Python non configuré». Utilisation de PyDev dans Eclipse
[Python] Choses à vérifier lorsqu'une erreur de décodage Unicode apparaît dans Django
Que faire si vous obtenez l'erreur Le script WSGI cible '/ var / www / xxx / xxx.wsgi' ne peut pas être chargé en tant que module python
Que faire si vous obtenez une erreur OpenSSL lors de l'installation de Python 2 avec pyenv
Que faire si vous obtenez une erreur de mémoire lors de la conversion de PySparkDataFrame en PandasDataFrame
Que faire si la barre de progression n'est pas affichée dans tqdm de python
Que faire si vous obtenez l'erreur ʻERR_FEATURE_UNAVAILABLE_ON_PLATFORM` lors de l'utilisation de ts-node-dev sous Linux
Que faire si vous exécutez python sur IntelliJ et quittez avec une erreur
Que faire si vous obtenez une erreur Impossible de récupérer le lien métallique pour le référentiel avec yum
Que faire si vous obtenez une erreur lors de l'exécution de "certbot renouveler" dans l'environnement CakePHP
Que faire si vous ne pouvez pas utiliser la poubelle dans Lubuntu 18.04.
Que faire lorsque le type de valeur est ambigu en Python?
Que faire si vous chattez ou suivez un fichier binaire et que le terminal est brouillé
NameError: le nom global'dot_parser 'n'est pas défini et que faire quand il apparaît en python
Que faire s'il y a un décimal dans python json .dumps
Que faire si vous ne pouvez pas utiliser la recherche de grille de sklearn en Python
Que se passe-t-il si vous "importez A, B comme C" en Python?
Que faire si vous obtenez "La session n'a pas pu être ouverte" lors de l'installation de CentOS sur VirtualBox
Que faire lorsque vous vous fâchez avec "Value Error: unknown local: UTF-8" dans python manage.py syncdb
Que faire si une erreur de lien symbolique se produit dans l'importation cv lors de la tentative d'installation d'OpenCV en Python
Que faire si vous recevez le message "" ~ .pkg "est corrompu et ne peut pas être ouvert" lors de l'installation de wxPython sur Mac OS X
Que faire si une erreur de version se produit dans le pilote Selenium Chrome
Que faire si vous obtenez l'erreur L'entrée contient NaN, l'infini ou une valeur trop grande pour dtype ('float64').
[Python] Erreur de type: l'objet 'WebElement' n'est pas itérable Que faire lorsqu'une erreur se produit
Que faire quand n'est pas dans le fichier sudoers. Cet incident sera signalé.
Que faire quand "Aucun noyau pour le langage python trouvé" apparaît dans Hydrogen
Que faire si la commande d'impression elle-même provoque une erreur dans le python de Maya
Que faire si vous obtenez "(35, 'Erreur de connexion SSL')" dans pycurl (l'un d'entre eux)
Si vous obtenez l'erreur "la matrice de base est singulière à la précision de travail" dans GLPK
Que faire si vous ne voyez pas IntelliSense de Python dans VS Code sous Windows
Comment installer et utiliser pyenv, que faire si vous ne pouvez pas changer de version de Python
Que faire si vous obtenez une erreur d'importation lors de l'importation de matplotlib avec Jupyter
Que faire lorsque Python ne passe pas de la version système dans pyenv
Un mémo de fonction utile lorsque vous souhaitez entrer dans le débogueur si une erreur se produit lorsque vous exécutez un script Python.
Que faire si vous recevez une erreur d'appel avec trop d'arguments d'entrée à faire et retourner dans un test de golang
Dans pandas.DataFrame, même lors de l'attribution d'une seule colonne spécifique, si l'index est attaché, vous n'avez pas à vous soucier de l'ordre des données
Installez la bibliothèque python lorsque vous n'êtes pas un sudoer (ou si vous ne voulez pas que les nouveaux utilisateurs soient Sudoer, mais cela ne vous dérange pas d'avoir la bibliothèque Python incluse)
Que faire si Combinaisons devient «couverture inconnue»
Que faire si une erreur 0xC0000005 se produit dans tf.train.start_queue_runners ()
Que faire si vous ne pouvez pas vous connecter en tant que root
Que faire si l'image n'est pas affichée à l'aide de matplotlib etc. dans le conteneur Docker
Que faire lorsqu'un artefact manquant se produit dans un fichier jar qui n'est pas défini dans pom.xml
[Python] Lorsque vous souhaitez importer et utiliser votre propre package dans le répertoire supérieur