2011-09-18 19 views
6

Sto usando PyDev in Eclipse come editor Python. Va bene in termini di set di funzionalità. Tutto funziona bene, tranne che per una cosa molto fastidiosa:Il completamento di Eclipse PyDev si blocca (ancora una volta)

Il completamento del codice funziona in modo rapido. Quando premo Alt + Spazio, la finestra si apre quasi istantaneamente e tutte le opzioni sono disponibili. L'opzione in alto è selezionata. Quindi arriva il problema. La descrizione dettagliata non verrà visualizzata fino a circa 5-10 secondi. Per tutto questo tempo la CPU funziona al massimo carico e l'interfaccia non risponde. Tutto il processore viene utilizzato dal processo di Eclipse Java (il processo generato da Python sembra inattivo). Quindi appare una finestra gialla e tutto ciò che contiene è solo un codice Python di una funzione/variabile selezionata. Tutti i dettagli consecutivi vengono visualizzati immediatamente. La procedura si ripete quando chiudo la finestra di completamento (ad esempio accettando una delle opzioni e chiedendo di nuovo il completamento). Questo mi fa impazzire.

io ho provato finora:

  • creazione di una nuova area di lavoro,
  • creazione di un progetto Eclipse/PyDev da zero,
  • tweaking JVM per assicurarsi che ha un sacco di memoria,
  • assicurandosi che la JVM destra è scelto (l'ultimo Oracle JVM disponibili),
  • assicurandosi processo Python comunica liberamente con l'istanza di Java (ho letto su possibili problemi con questo, ma sembra non essere il problema).
  • assicurandosi che tutti i plugin installati siano aggiornati.

La versione che utilizzo è Eclipse Helios, perché l'ultima volta che ho controllato alcune estensioni non erano ancora state trasferite all'ultima.

Qualcuno ha osservato un problema simile? Qualcuno era in grado di aggirarlo? Idee generali su come eseguirne il debug e archiviare un report di errore ragionevole? Altre cose per cui vale la pena controllare.

Qualsiasi soluzione alternativa è meno drastica del completamento completo del completamento?

Grazie!

EDIT:

Ho anche notato un problema con una finestra pop-up simile a Editor HTML/CSS. Sembrava in qualche modo simile (una finestra gialla, con del testo all'interno) e ci sono voluti anche anni per essere mostrati. Non so davvero se questo è correlato, ma potrebbe essere.

EDIT (2):

Ok, non ho iniziato con una nuova installazione della nuova Eclipse Indigo, senza plugin aggiuntivi a parte pydev e la questione rimane. Sembra che dovrò cercare un nuovo IDE.

risposta

0

C'è qualche possibilità che tu possa fornire il codice che sta facendo accadere ciò (e aggiungerlo a un bug report vedi: http://pydev.org/about.html per i link)?

Io uso PyDev quotidianamente con alcuni progetti molto grandi e non ho questo problema, quindi potrebbe essere un qualche specifico costrutto o scenario nel tuo codice - o forse non hai appena dato a Eclipse abbastanza memoria (che sarebbe fai in modo che il garbage collector funzioni molto di più), nel qual caso, dai uno sguardo a: What are the best JVM settings for Eclipse? (nello specifico, alza il tuo flag -Xmx, anche se probabilmente puoi usare anche gli altri suggerimenti anche lì).

Se non è possibile fornire uno scenario riproducibile, l'altra scelta è quella di ottenere un profiler (ad esempio: YourKit java profiler ha 15 giorni gratuiti che potrebbero aiutare in questo caso), eseguendo tale caso d'uso nel profiler e passando un'istantanea di ciò che sta accadendo in questa situazione (se questo è il caso, si prega di aprire una segnalazione di bug su pydev.org e posso aiutarti).

+0

Penso di averlo risolto parzialmente, vedere i dettagli qui: http://stackoverflow.com/questions/7148619/eclipse-hangs-for-3-4-seconds-before-displaying-a-tooltip-message – julkiewicz

0

Ho ricevuto questo dalle domande frequenti su pydev.org e funziona perfettamente per me.

Quando eseguo il completamento del codice, PyDev si blocca, cosa posso fare?

PyDev fa la maggior parte delle sue cose nel lato java, ma alcune informazioni possono essere ottenute solo dal lato python (principalmente builtin), quindi, per ottenere tali informazioni, PyDev crea una shell e comunica con essa attraverso le prese .

I principali problemi quando ciò accade sono:

  1. C'è un firewall che blocca la comunicazione al guscio

  2. In Linux, alcuni kernel non consentono l'utilizzo di IPv4, che può rendere PyDev sicuro.

Per attivarlo, vedere: echo 0>/proc/sys/net/ipv6/bindv6only

  1. Il timeout per la connessione è troppo Smal.

Dipende dalla "Timeout per la connessione a Shell" nelle preferenze di completamento del codice (Finestra> Preferenze> PyDev> completamento del codice)

Se non funziona, si prega di segnalare un bug (anche, controllare se c'è qualcosa nel registro degli errori (finestra> mostra vista> PDE Runtime> registro errori) e in eclissi ".log", che si trova nella cartella .metadata della posizione dello spazio di lavoro

+1

attento, questa domanda ha quasi un anno. – Wug

2

Che versione di Java sono

Se si utilizza Windows 7, versioni successive di Java (credo 6+) wi L'impostazione predefinita è IPv6. Questo probabilmente sta causando il problema poichè Python potrebbe volere IPv4.

In ogni caso, dal momento che ho avuto questo problema ho provato a rendere invalido

  • pylint
  • analisi del codice

ma era ancora appeso.

La risposta di Pal su "utilizzo ipv4" ha attivato la memoria su un altro problema che avevo risolto "preferendo" IPv4.

Vedi http://docs.oracle.com/javase/1.4.2/docs/guide/net/ipv6_guide/

Che cosa si vuole fare è quello di modificare l'eclipse.ini e aggiungere "-Djava.net.preferIPv4Stack = true" nella sezione vmargs

-startup 
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar 
... 
-vmargs 
-... 
-Djava.net.preferIPv4Stack=true 
... 

ottengo più si blocca .

+0

Sì! Sì! e ancora Sì! In alternativa, ho disabilitato IPv6 su tutti i miei adattatori di rete, e gli hang sono spariti! – tishma

+0

Il fatto è che sto usando python solo una volta ogni tanto, e ho usato solo per tornare a Notepad ++ a causa di questo problema, non avendo il tempo di capirlo. – tishma

+0

OK. Ora fallisce solo quando premo Ctrl-Space :( – tishma

Problemi correlati