2012-02-01 21 views
14

IDLE è in fase di arrendevolezza quando mostra effettivamente un menu di completamento automatico. Negli ultimi tempi non ha funzionato affatto, o, più specificamente, funziona solo durante una sessione interattiva.Python IDLE. Completamento automatico/Mostra completamenti non funzionanti

Ho utilizzato Code Blocks per C e sono diventato davvero abituato alle funzionalità di completamento automatico molto interessanti, quindi è un po 'frustrante non averli - specialmente mentre si prova ad apprendere un nuovo frame work e quale classe è associato a quali metodi, ecc., ecc.

Esiste una soluzione semplice per ripristinare il funzionamento automatico IDLE? Sto usando Python versione 2.7.

C'è forse un editor semplice che dovrei esaminare? Ho provato Vim, che era un po 'troppo pesante per le mie semplici esigenze, Ninja, che non riuscivo a lavorare per niente, e Sublime text 2, che non riuscivo a ottenere con le mie cose wxpython con cui giocare. Quale sarebbe una buona opzione? Qualsiasi cosa simile a Code Blocks sarebbe interessante, anche se sarei perfettamente soddisfatto di IDLE se funzionasse in modo coerente!

chiarimenti richiesti: OK, così sembra che io possa avere alcuni di mia terminologia all'indietro. Per non interattivo, intendo, ad esempio, facendo clic destro su un file py e selezionando "modifica con IDLE". Questo fa apparire ciò che immagino possa essere descritto come un editor di testo. Puoi inserire tutto il codice qui. Una volta pronto, premi F5, o seleziona Esegui, e avvia (quello a cui mi riferisco) il terminale interattivo. È qui che puoi digitare il codice, premere Invio, e immediatamente valutare il codice.

La mia domanda si riferisce ad essa, la parte di IDLE in cui si modifica il codice. A volte durante la digitazione, dopo un. mostrerà i metodi disponibili, o dopo una parentesi aperta darà suggerimenti sui valori attesi. ma la cosa è, a volte fa queste cose, a volte no.

+0

http://ipython.org/ con vim o anche semplicemente gedit – wim

+0

Mi dispiace, potrei averlo spiegato male nel mio post, ma il problema è che il completamento automatico funziona in modo interattivo, ma * solo * in modo interattivo.Se sto semplicemente digitando in auto-completamento IDLE non funziona. Quindi sto cercando di capire come farlo funzionare quando si codifica * non * -interactive. – Zack

+2

Oh giusto, scusa! Non ho trovato alcun bisogno di un IDE quando lavoro in Python, quindi non posso aiutarti. – wim

risposta

11

L'unica cosa che ho trovato finora è che se una sessione di modifica di IDLE è connessa con la shell python (chiamata "modalità interattiva" nella domanda, cioè dopo un tentativo di eseguire lo script modificato) quindi "non interattiva" IDLE può completare automaticamente in base ai valori nella finestra interattiva. Ad esempio, se di tipo

a = []; 
a.appen 

e poi colpito < Tab> si farà nulla, ma se in precedenza si digita

a = [] 

in corrispondenti coperture pitone, IDLE completerà automaticamente correttamente.

Quindi il mio unico suggerimento è importare gli stessi moduli con gli stessi nomi nella finestra della shell python per renderli "visibili" per l'editor IDLE non interattivo.

+1

Funziona anche se lo script è incompleto (produce errori durante l'esecuzione). Grazie per il consiglio. Sfortunatamente, dovresti eseguire il tuo codice varie volte mentre costruisci lo script per ottenere questo. Ciò, tuttavia, sarà più utile man mano che il codice si allungherà. Nel codice più lungo, tenderai ad usare variabili definite in precedenza (che hai testato con F5) e quindi più cose disponibili sotto il completamento automatico. – VISQL

9

Ho avuto lo stesso problema con IDLE, perché voglio imparare Qt e quindi l'autocompletamento è molto utile. Come si dice nelle impostazioni di IDLE, puoi attivare il completamento automatico con "Control + Spazio", ad es. dopo un "QtGui". Quindi si apre un menu in cui è possibile scorrere le voci con la freccia.

+2

Non posso ancora votare, ma grazie user2366975! Usare Ctrl + Spazio funziona come un incantesimo. IDLE è abbastanza veloce in Windows, ma sul mio Mac ci sono voluti per sempre delle opzioni per completarlo automaticamente. Arrivederci TextWrangler, userò di nuovo IDLE. – VDubs

+0

contento che l'abbia aiutato :) – user2366975

+0

Quindi, affinché la funzione di completamento automatico funzioni, è necessario che la shell importi prima una libreria. Quindi il completamento automatico offrirà funzioni/classi (dopo ctr + spazio) e scheda. – icypy

0

Nel mio caso, ho dovuto aprire il menu Opzioni -> scheda Estensioni sull'editor e cercare di assicurarsi che Completamento automatico e altre opzioni pertinenti fossero abilitate. In realtà lo erano, ma semplicemente cliccando su "Applica" anche se non ho bisogno di cambiare nulla ha fatto il trucco per me.

Problemi correlati