Interactive matplotlib par Eclipse PyDev
C'est un suivi à ce interactive matplolib par eclipse thread qui est d'environ 2 ans, je me demandais si il n'y a eu aucun progrès dans l'intervalle.
Je suis en cours d'exécution de la console IPython dans une fenêtre de console dans Eclipse PyDev, mais je n'arrive pas à obtenir le même interactif de traçage fonctionnalités avec matplotlib comme si je devais courir IPython dans un (Windows) invite de commande à l'extérieur Eclipse PyDev. Voici comment les deux de comparer:
A) l'Exécution de IPython dans un shell à l'extérieur de l'Éclipse PyDev
- Exécuter IPython dans une invite de commande Windows avec "ipython --pylab"
- À l'intérieur de la console IPython entrer "plot([1,2,3])". Cela va ouvrir une figure de la parcelle et la fenêtre de la console IPython est prêt pour d'autres commandes (sans avoir à fermer la figure la fenêtre du tracé).
- Par exemple, je peux entrer "xlabel('ans')" et cela permettra de mettre à jour ma figure la fenêtre du tracé.
B) l'Exécution de IPython dans une console interactive au sein d'Eclipse PyDev
Entrez les informations suivantes dans la IPython console interactive au sein d'Eclipse PyDev:
- "from pylab import *"
- "plot([1,2,3])" --> la Figure de la parcelle fenêtre ne s'affiche pas.
- - Je entrer "afficher()" pour ouvrir la figure la fenêtre du tracé. Mais maintenant le problème est que tant que je continue de la figure de l'intrigue de la fenêtre ouverte, la console IPython ne pas accepter de nouvelles commandes.
- Alors je ferme la figure de l'intrigue de la fenêtre, entrez "xlabel('ans')", suivi par "afficher()" de nouveau. Ce sera de nouveau la figure de l'intrigue de la fenêtre avec "ans" que mes étiquettes de l'axe, mais l'intrigue elle-même est vide et n'affiche pas les [1,2,3] données de plus.
Avec ce comportement, Un) est nettement supérieure à B), mais j'aimerais continuer à travailler dans Eclipse PyDev parce que j'aime toujours avoir la liste des variables sur mon écran (sans avoir à exécuter une commande pour afficher toutes les variables comme lors de l'exécution de IPython forme d'un shell de windows). À l'aide de Méchants Shell, comme suggéré dans l'autre thread, ne fonctionne pas (IPython ne fonctionne pas correctement dans Méchants Shell).
Comment puis-je configurer IPython dans Eclipse PyDev, de sorte qu'il montre le même comportement interactif comme si je courrais dans une invite de commande windows?
ion()
- c'est une fonction de matplotlib qui signifie "mode interactif".Merci Thomas. J'ai peur d'ions() ne permet pas de le résoudre. Au moins sur mon PC Windows ion() résultats à des chiffres qui ne sont pas de répondre et être mis fin à l'aide du Gestionnaire des Tâches.
OriginalL'auteur Michael | 2012-11-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez résoudre ce problème en sélectionnant une interface graphique pour la Console Interactive dans PyDev Préférence.
Eclipse -> Window -> Préférences -> Pydev -> Console Interactive -> Activer GUI boucle d'événement de l'intégration.
Dans mon cas, j'ai choisi PyQt (qt/qt4)
OriginalL'auteur Andy
Excuses pour potentiellement incomplète, mais j'espère que je vais être en mesure de jeter un peu de lumière sur le problème.
Je crois que celui que l'OP décrit est un comportement normal. En fait, à partir de la ligne de commande ipython, l'importation pylab et l'émission d'une commande plot produit exactement le blocage de comportement décrits, ce n'est donc pas liée à pydev ou eclipse. Le fait est que montrer dans matplotlib est le blocage en mode interactif; lorsque vous utilisez matplotlib dans un ipython session a commencé comme "ipython --pylab", vous prenez avantage des "hacks" que le ipython développeurs n'ont pour vous autour de matplotlib, permettant d'avoir à la fois un mode interactif et non de blocage des appels. Toutefois, l'importation de pylab n'est pas suffisant pour appliquer ces "hacks". PyDev ne semble pas permettre de drapeaux de l'interprète, alors on ne peut pas invoquer directement "ipython --pylab".
Heureusement, ipython a une commande spéciale "pylab" qui applique les hacks et les importations pylab même si l'interprète n'a pas commencé avec la pylab drapeau. De sorte que vous pouvez essayer de taper "pylab" à l'intérieur de la console (en fait, vous pouvez même personnaliser votre pydev de la console de sorte que c'est fait automatiquement) et vous devriez obtenir le comportement désiré. Toutefois, je dois signaler que tout cela fonctionne très bien pour moi à partir d'un ipython session a commencé à partir de la ligne de commande, quelque chose se passe mal quand j'essaie de faire la même chose de l'intérieur de l'Éclipse. La commande ne bloque pas, je reçois le python icône mais la matplotlib fenêtre ne s'affiche pas. Pour les enregistrements, je suis sur un Mac sous Snow Leopard. Je ne suis pas en mesure de dire si le même problème se produit également dans Windows, que l'OP semble être l'utilisation d'.
pylab
fait entièrement interactif et non-blocage des parcelles comme prévu.OriginalL'auteur Spock
Je obtenir le même comportement dans Eclipse PyDev par l'exécution de la fonction de traçage dans un autre thread:
Testé avec la chaîne d'outils Eclipse 4.3, PyDev 2.7.1, Python 3.2, IPython 0.13
Pour une raison quelconque la ligne
import matplotlib.animation as animation
ne tuer mon IPython3 interprète sous Ubuntu 14.04 64 bits EclipseOriginalL'auteur Liteon
Suffit d'utiliser la
%matplotlib
magie-commande pour activer le traçage interactif (exactement ce que vous avez décrit).La
pylab
commande importationsnumpy.*
etpylab.*
, gravement polluer votre espace de noms global.OriginalL'auteur ankostis