matplotlib ne dessine pas python3

j'ai installé matplotlib avec succès dans un virtualenv. Maintenant, je vais essayer de l'obtenir à dessiner. Je sais comment changer l'arrière, mais j'ai beaucoup de mal à trouver à quoi le changer.

Quelqu'un a-t-il réussi à le faire fonctionner totalement avec python3? Si oui, comment?

j'ai essayé un tas de choses. J'ai parcouru tous les arrières pour voir ce que sont toutes les plaintes, pas j'essaie d'en faire travailler une seule.

aussi peut-être intéressant de noter est que mon but est de l'intégrer dans une application pyramidale.

Voici ce qui s'est passé jusqu'à présent pour tous les différents backends:

  • Agg: c'était le backend par défaut. il ne tire pas
  • GTK: nécessite pygtk qui n'a apparemment pas été porté sur python3
  • GTKAgg: ditto
  • GTKCairo: dit 'paquet requis gtk' supposons quelque chose dans le sens de ci-dessus
  • FltkAgg: il n'a pas l'air d'avoir une version python3. Même s'il est mentionné dans la FAQ de python3 UI. Je suppose que c'était juste un de rouse. nom de Dieu
  • MacOSX: je lance ubuntu. supposé inapproprié
  • QtAgg: requires pyqt. voir deuxième partie commentaire n
  • Qt4Agg: voir installation de PyQt4 dans un environnement virtuel
  • TkAgg: Importateur: ne peut pas importer le nom _tkagg. Je peux lancer l'import tkinter dans l'interpréteur cependant, donc je ne suis pas vraiment sûr de ce qui est cassé pour le moment
  • WX: ImportError: Matplotlib backend_wx et backend_wxagg require wxversion, which was not found""
  • WXAgg: ditto
  • CocoaAgg: ImportError: le backend Cocoaagg exigeait L'installation de PyObjC!
  • GTK3Cairo: ImportError: GTK3 backend requires pygobject to be installer. J'ai essayé de l'installer mais quand j'essaie de le configurer avec le bon python, il se plaint de manquer des en-têtes
  • GTK3Agg: aucun module nommé Le Caire. mais j'affirme que je vais frapper la même question que ci-dessus
  • le caire: le Caire backend exige que pycairo est installé
  • emf: vous devez d'abord installer pyemf à partir de http://pyemf.sf.net . On dirait qu'il est censé faire des trucs de windowsey donc ce n'est peut-être pas bon choix
  • gdk: aucun module appelé gobject
  • pdf: fonctionne mais ne tire pas
  • pgf: idem
  • ps: idem
  • svg: idem
  • modèle: idem .

le script que j'utilise pour tester mon backend est:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()

jusqu'à présent j'ai passé beaucoup trop de temps à essayer d'obtenir python3.2 et qt4 jouer sympa, et j'ai juste l'impression de rencontrer des problèmes dans tous les sens. Donc au lieu de continuer avec mon approche d'essai et d'erreur je veux demander:

  1. Quelle est la meilleure option pour Python3.2 et Pyramid?
  2. Comment faire pour que ça arrive?

dans l'intervalle, je vais continuer avec le test-and-error chose et mettre à jour ma question que je vais.

NOTES sur des choses que je suis en train

Pour TkAgg:

depuis que tkinter importe correctement, je suppose qu'il est installé correctement (si je me trompe, je suppose qu'il y a un moyen de le tester?). Ce type http://ask.sagemath.org/question/626/sage-python-import-matplotlib-no-module-named avait un problème similaire, mais je suis sûr que sa configuration est différente de la mienne. La solution était de trouver tkagg.py dans les intestins du python3.2 site packages directory and edit the déclaration d'importation frauduleuse. J'ai du mal à croire que les vaisseaux matplotlib soient cassés (et je ne peux pas exécuter le code modifié suggéré...)

Pour WX choses:

wxPython pour Python 3 dit il n'y a pas de support pour python3 encore. Aussi wxPython n'a aucune mention de python3 sur leur site donc je suppose que c'est un non-go. à court d'options: /

cacao:

Idem: L'Écriture De Cacao applications en Python 3

EMF:

ditto: http://pyemf.sourceforge.net/README.html

24
demandé sur Community 2012-10-18 10:30:50

5 réponses

j'ai rencontré exactement la même question, mais après beaucoup d'efforts j'ai réussi à faire fonctionner TkAgg (ce qui donnait l'erreur d'importation pour _tkagg). Un peu tard, mais quelqu'un pourrait le trouver utile.

FWIW j'ai résolu le problème comme suit (pour utiliser TkAgg):

  • installé tk-dev du gestionnaire de paquets
  • réinstallé python3-tk du gestionnaire de paquets
  • Reconstruit et réinstallé matplotlib à partir de la source
  • (et bien sûr réglage TkAgg dans matplotrc)

si vous pensez que vous avez tk-dev et python3-tk installés correctement, vous devez reconstruire et réinstaller matplotlib , de sorte qu'il génère _tkagg.py dans votre répertoire backends .

je suis utiliser Python3.3 (numpy 1.7) sur LM14. Mais je pense que ça devrait marcher sur Ubuntu / Python3.2

15
répondu mg007 2013-04-10 08:20:36

j'ai fait des compilations source de python 3.3.2 et matplotlib. Comme nous l'avons déjà mentionné, TkAgg fonctionne. Si vous construisez tout à partir de la source:

  1. sudo apt-get install tk-dev
  2. reconstruire python3 (faire propre; ./ configure; make)
  3. Propre matplotlib (supprimer oeuf de virtualenv, retirer le cache des objets de ~/.config / matplotlib)
  4. reconstruit matplotlib à partir de la source (rm-r build/; python setup.py construire; python setup.py install)

J'ai enfin vu cette stupide BOITE apparaître avec ma ligne x=Y.

heures ....

2
répondu justinvf 2013-07-29 03:42:20

Matplotlib semble avoir fait un grand pas vers Python 3 avec leur 1.2.X release . matplotlib 1.2.0rc2 (+numpy 1.7.0B2) travaille pour moi avec

  • Python 3.2.2 (virtualenv on a Linux Mint 12)
  • Python 3.3.0 (local d'installation de la source)

dans les deux cas, matplotlib déclare" TkAgg " comme support utilisé.

malheureusement, je n'ai aucune idée si / comment cela pourrait fonctionner avec Pyramid.

1
répondu Hans 2012-10-24 08:57:10

j'ai écrit une réponse pour assurer matplotlib dans un virtualenv Python 3 dans Ubuntu 16.04 utilise le TkAgg backend à https://askubuntu.com/a/785506/15003 qui peut être utile ici. Le résultat est d'installer tk-dev , d'activer le virtualenv et de réinstaller matplotlib dans le virtualenv:

sudo apt install tk-dev
source venv/bin/activate
pip --no-cache-dir install -U --force-reinstall matplotlib

python -c 'import matplotlib as mpl; print(mpl.get_backend())' devrait maintenant dire TkAgg .

0
répondu edwinksl 2017-04-13 12:22:45

pour moi, ce qui suit a fonctionné:

  • désactiver",
  • sudo apt-get install python3-matplotlib libfreetype6-dev
  • (activer virtualenv) source /home/...,
  • pip install numpy matplotlib (peut-être désinstaller puis installer si vous l'avez déjà, ou peut-être essayer de créer un nouveau venv à ce point)
  • pip install --upgrade pip à l'intérieur de venv pourrait également aider (pour une raison inconnue de moi), comme il l'a fait avec mon installation scipy.

il trace maintenant en utilisant virtualenv.

$ lsb_release -a (gives..)

Ubuntu 14.04.5 LTS

0
répondu 1Penko 2018-02-06 02:02:00