2014-12-18 5 views
9

enter image description herePerché il debugger Python ottiene sempre questo timeout in attesa di risposta su 113 quando si usa Pycharm?

Bigger image

Soprattutto mi eseguire il codice, magari usando un po 'di tempo lungo (10 minuti circa), e ha colpito il punto di rottura. Il debugger python mi mostra sempre questo tipo di errore "timeout in attesa di risposta su 113" Cerchio in rosso in screencut.

E io uso Pycharm come IDE Python, è solo un problema per Pycharm IDE? O problema di debugger Python? E se Pycharm non è raccomandato, qualcuno può darmi un IDE migliore che sia in grado di eseguire il debug in modo efficiente.

+0

Molto difficile da vedere basato su questo screenshot. Puoi fornire un traceback e un esempio di codice? –

+0

In realtà se trascini l'immagine in una nuova finestra, diventa più grande. Il codice non è importante qui, mi chiedo solo perché il debugger in IDE fallisce. – Hypnoz

risposta

7

Ho avuto una cosa simile mi è successo qualche mese fa, si è verificato che ho avuto un'operazione molto lento all'interno di un __repr__() per una variabile che avevo in pila. Quando PyCharm raggiunge un punto di interruzione, afferra tutte le variabili nell'ambito corrente e chiama __repr__ su di esse. Ecco un divertimento che illustra questo problema:

import time 

class Foo(object): 

    def __repr__(self): 
     time.sleep(100) 
     return "look at me" 

if __name__ == '__main__': 
    a = Foo() 
    print "set your breakpoint here" 

PyCharm sarà anche chiamare __getattribute__('__class__'). Se hai un __getattribute__ è un comportamento anomalo che potrebbe farti inciampare.

Questo potrebbe non essere quello che ti sta succedendo ma forse vale la pena considerarlo.

0

Come siete su Windows, per il debug tali & la maggior parte delle cose che uso il buon vecchio PythonWin IDE: Questo IDE + Debugger viene eseguito nello stesso processo come la roba debug!

In questo modo, essere direttamente in contatto con oggetti reali, come pdb in una semplice shell interattiva, ma con una GUI utilizzabile, è un grande vantaggio per la maggior parte del tempo. In questo modo non ci sono problemi di trasferimento di oggetti di grandi dimensioni tramite repr/pickle o simili tra processi, senza ritardi, senza problemi di timeout, ecc.

Se un passo richiede molto tempo, PythonWin attenderà e non risponderà prima ... (a meno che non si emetta un segnale di interruzione/KeyboardInterrupt tramite l'icona della barra di sistema PythonWin).

E la shell interattiva di PythonWin è completamente utilizzabile anche durante il debugging - con spazio dei nomi all'interno del frame corrente.

Problemi correlati