2010-10-28 20 views
0

Je cours Python 3.1.2 avec IDLE 3.1.2 sur Windows 7. Lorsque j'essaie d'utiliser le Stack Viewer, texte bleu et une nouvelle fenêtre apparaissent brièvement avant que toutes les fenêtres ouvertes IDLE ne se terminent (je n'ai pas le temps de lire le texte ou la nouvelle fenêtre). C'est la première fois que j'utilise Stack Viewer.(Python, IDLE, Windows) En appuyant sur Stack Viewer quitte toutes les fenêtres IDLE

Est-ce un comportement normal? Comment puis-je faire en sorte que Stack Viewer reste ouvert?

Merci pour votre aide, Alex

Répondre

0

De l'documentation, le spectateur de la pile montre la trace de la pile de la dernière exception. Alors peut-être que dans votre cas, vous essayez d'ouvrir la visionneuse de pile, sans aucun lieu d'exception?

>>> a 

Traceback (most recent call last): 
    File "<pyshell#30>", line 1, in <module> 
    a 
NameError: name 'a' is not defined 

Si vous tapez 'a' et appuyez sur ENTRÉE, une exception se produit. Maintenant essayez d'ouvrir la visionneuse de pile

+0

Il se bloque. Je peux appuyer sur le bouton Stack Viewer avant une exception et rien ne se passe, et je peux activer Auto Open Stack Viewer. Mais quand j'essaie de l'utiliser quand une exception s'est produite (ou elle s'ouvre automatiquement), IDLE se bloque. – Alex

+0

Que se passe-t-il lorsque vous appelez explicitement Stack Viewer après une exception? (Ouverture automatique définie sur False) – user225312

+0

IDLE ouvre brièvement une nouvelle fenêtre, puis toutes les fenêtres IDLE se terminent avant que je puisse lire ce qui est indiqué. – Alex

0

Je n'ai pas Windows donc je ne peux pas vous aider avec l'expérience pratique, mais je ferais ce qui suit:

  • voir quelle est la commande exacte qui fonctionne lorsque vous cliquez sur le menu Idle (je pense que vous pouvez faire un clic droit et voir ses propriétés, ou au moins vous pourriez sur les versions antérieures de Windows)
  • ouvrir une invite de commande, et exécutez la commande qui ouvre Idle
  • ouvrir la visionneuse de pile et alors notez le retraçage qui (devrait!) apparaître dans la fenêtre d'invite de commande
  • rapport dit retraçage ici :)

BTW, dans mon installation (ni de Windows, ni 3.x Python), une tentative d'ouvrir le spectateur de la pile sans retraçage produit le message suivant:

  • Titre: Aucune trace de pile
  • Message: Il n'y a pas encore de trace de pile.
    (sys.last_traceback est pas défini)
+0

Lorsque j'ai ouvert idle.py dans Lib \ idlelib, forcé une exception, et la vue de la pile utilisée IDLE est restée ouverte. Cela est apparu dans l'invite de commande: C: \ Python31 \ Lib \ idlelib> python idle.py *** Erreur interne: rpc.py:SocketIO.localcall() Objet: 45342064 Méthode: > Args:() retraçage (le plus récent appel dernier): fichier "c: \ Python31 \ lib \ idlelib \ rpc.py", ligne 188, dans localcall ret = méthode (* args , ** kwargs) fichier "c: \ Python31 \ lib \ idlelib \ RemoteObjectBrowser.py", ligne 21, dans _GetSubList – Alex

+0

liste de retour (carte (remote_object_tree_item, liste)) TypeError: objet 'liste' est pas appelable Exception en rappel Tkinter retraçage (appel le plus récent en dernier): fichier "C: \ Python31 \ Lib \ tkinter \ __ init__.py", ligne 1399, dans __call__ self.func de retour (* args) fichier « C: \ Python31 \ Lib \ idlelib \ PyShell.py ", ligne 1171, dans open_stack_viewer self.interp.remote_stack_viewer de retour() fichier "C: \ Python31 \ Lib \ idlelib \ PyShell.py", à la ligne 572, en remote_stack_viewer node.expand() fichier « C: \ Python31 \ Lib \ idlelib \ TreeWidget .py ", ligne 131, dans expand self.update() – Alex

+0

Fichier" C: \ Python31 \ Lib \ idlelib \ TreeWidget.py ", ligne 170, dans la mise à jour self.draw (7, 2) Fichier" C : \ Python31 \ Lib \ idlelib \ TreeWidget.py ", ligne 184, dans dessiner sous-liste = self.item._GetSubList() Fichier" C: \ Python31 \ Lib \ idlelib \ RemoteObjectBrowser.py ", ligne 36, dans _GetSubList return [StubObjectTreeItem (self.sockio, oid) pour oid dans la liste] TypeError: l'objet 'NoneType' n'est pas itérable Cela fonctionne également quand je souris juste ouvrir idle.py, mais pas quand j'ouvre python.pyw. Je suspecte que le raccourci IDLE pointe vers idle.pyw – Alex

2

Ce bug IDLE (série 3 seulement) a été fixé 30Jan11. Le correctif est en 3.1.4 et 3.2.