2012-02-01 15 views
14

IDLE es muy dudoso en cuanto a cuándo realmente mostrará un menú de Autocompletar. Últimamente no ha estado funcionando en absoluto o, más específicamente, solo funciona durante una sesión interactiva.Python IDLE. Las terminaciones de Autocompletar/Mostrar no funcionan

He estado usando Code Blocks for C, y me he acostumbrado a las muy buenas funciones de autocompletar, por lo que es un poco frustrante no tenerlas, especialmente cuando intento aprender un nuevo trabajo de marco y qué clase se asocia con qué métodos, etc., etc.

¿Existe una solución fácil para que IDLE autocomplete vuelva a funcionar? Estoy usando la versión 2.7 de Python

¿Hay quizás un editor simple que debería examinar? He probado Vim, que era un poco demasiado pesado para mis necesidades simples, Ninja, que no pude conseguir para nada, y Sublime text 2, con el que no pude jugar con mi wxpython. ¿Cuál sería una buena opción? Cualquier cosa similar a Code Blocks sería genial, aunque estaría perfectamente contento con IDLE si funcionara de manera consistente.

ACLARACIÓN SOLICITADA: OK, por lo que parece que puedo tener algo de mi terminología al revés. Por no interactivo, quiero decir, por ejemplo, haciendo clic derecho en un archivo py y seleccionando "editar con IDLE". Esto trae a colación lo que supongo podría describirse como un editor de texto. Puede ingresar todo el código aquí. Una vez que esté listo, presione F5, o seleccione Ejecutar, y se iniciará (lo que he estado refiriendo) como el terminal interactivo. Aquí puede escribir el código, presionar regresar e instantáneamente evaluar ese código.

Lo que mi pregunta se refiere a la primera, la parte de IDLE donde edita el código. Algunas veces, mientras tipeas, después de a. Mostrará los métodos disponibles, o después de un paréntesis abierto dará pistas sobre los valores esperados. pero la cosa es que a veces hace estas cosas, otras no.

+0

http://ipython.org/ con vim o incluso simplemente gedit – wim

+0

@wim Lo siento, es posible que lo haya explicado mal en mi publicación, pero el problema es que la autocompletación funciona interactivamente, pero * solo * de forma interactiva.Si solo estoy escribiendo en IDLE, el autocompletado no funciona. Así que estoy tratando de encontrar la manera de hacerlo funcionar al codificar * non * -interactively. – Zack

+2

¡Oh, sí, lo siento! No he encontrado ninguna necesidad de un IDE cuando trabajo en Python, así que no puedo ayudarte allí. – wim

Respuesta

11

Lo único que encontré hasta ahora es que si una sesión de edición de IDLE está conectada con python shell (llamada "modo interactivo" en la pregunta, es decir, después de un intento de ejecutar el script editado) entonces "no interactivo" IDLE puede autocompletarse según los valores en la ventana interactiva. Por ejemplo, si escribo

a = []; 
a.appen 

y luego golpeó < Tab> no hará nada, pero si previamente escribo

a = [] 

en cáscara correspondiente pitón, IDLE autocompletará correctamente.

Así que mi única sugerencia es importar los mismos módulos con los mismos nombres en la ventana del shell de Python para hacerlos "visibles" para el editor IDLE no interactivo.

+1

Esto funciona incluso si su script está incompleto (produce errores cuando se ejecuta). Gracias por el consejo. Desafortunadamente, tendrías que ejecutar tu código varias veces a medida que desarrollas el script para obtener esto. Sin embargo, esto será más útil a medida que su código se alargue. En un código más largo, tenderá a usar variables previamente definidas (que probó con F5) y, por lo tanto, más cosas disponibles en autocompletar. – VISQL

9

Tuve el mismo problema con IDLE, porque quiero aprender Qt y, por lo tanto, la autocompletación es muy útil. Como dice en la configuración de IDLE, puede desencadenar el autocompletado con "Control + Espacio", p. después de un "QtGui". A continuación, se abre un menú en el que puede desplazarse con la flecha por las entradas.

+2

No puedo votar aún, pero gracias user2366975! Usar Ctrl + Space funciona como un amuleto. IDLE es bastante rápido en Windows, pero en mi Mac me llevaba una eternidad darme opciones para autocompletar. Adiós a TextWrangler, estaré usando IDLE de nuevo. – VDubs

+0

contento de haber ayudado :) – user2366975

+0

Por lo tanto, para que Autocomplete funcione, primero necesita el shell para importar una biblioteca. Luego, la función autocompletar ofrecerá funciones/clases (después de ctr + espacio) y tabulación. – icypy

0

En mi caso, tuve que abrir el menú Opciones -> pestaña Extensiones en el editor y verificamos que Autocompletar y otras opciones relevantes estuvieran habilitadas. En realidad lo fueron, pero al hacer clic en 'Aplicar', aunque no tengo que cambiar nada, el truco fue para mí.

Cuestiones relacionadas