web-dev-qa-db-fra.com

Python IDLE. La complétion automatique/Afficher les finitions ne fonctionne pas

IDLE est très confus quant au moment où il affichera un menu de saisie semi-automatique. Récemment, cela n'a pas fonctionné du tout, ou plus spécifiquement, pendant une session interactive. 

J'utilise des blocs de code pour C, et je suis vraiment habitué aux très belles fonctionnalités d'auto-complétion, c'est donc un peu frustrant de ne pas les avoir - surtout lorsque j'essaie d'apprendre un nouveau travail sur les cadres et quelle classe est associée à cette classe. méthodes, etc, etc ..

Existe-t-il une solution simple pour faire fonctionner IDLE auto-complete à nouveau? J'utilise python version 2.7. 

Existe-t-il peut-être un éditeur simple à explorer? J'ai essayé Vim, qui était un peu trop lourd pour mes besoins simples, Ninja, pour lequel je ne pouvais travailler, et Sublime text 2, avec lequel je ne pouvais pas jouer avec mon contenu wxpython. Quelle serait une bonne option? Quelque chose de semblable aux blocs de code serait cool, bien que, je serais parfaitement heureux avec IDLE si cela fonctionnait toujours!

CLARIFICATION DEMANDÉE: OK, il semble donc que je puisse avoir une partie de ma terminologie en arrière. Par non-interactif, j'entends, par exemple, un clic droit sur un fichier py et la sélection de "modifier avec IDLE". Cela amène ce que je suppose pourrait être décrit comme un éditeur de texte. Vous pouvez entrer tout votre code ici. Une fois prêt, appuyez sur F5 ou sélectionnez Exécuter pour lancer le terminal interactif. C'est ici que vous pouvez taper le code, appuyer sur la touche Retour et faire évaluer instantanément ce code. 

Ce que ma question fait référence à l'ancien, la partie de IDLE où vous éditez le code. Parfois, en tapant, après un. il affichera les méthodes disponibles ou, après une parenthèse ouverte, donnera des indications sur les valeurs attendues. mais la chose est, parfois, il fait ces choses, parfois non. 

14
Zack

La seule chose que j’ai trouvée jusqu’à présent est que si une session d’édition d’IDLE est connectée à un shell Python (appelé «mode interactif» dans la question, c’est-à-dire après une tentative d’exécution du script édité), alors IDLE «non-interactive» peut être complétée automatiquement. sur les valeurs dans la fenêtre interactive. Par exemple, si je tape

a = [];
a.appen

puis appuyez sur <Tab>, cela ne fera rien, mais si je tape précédemment

a = []

dans le shell python correspondant, IDLE se complétera automatiquement correctement.

Donc, ma seule suggestion est d’importer les mêmes modules avec les mêmes noms dans la fenêtre du shell Python afin de les rendre "visibles" pour l’éditeur IDLE non interactif.

12
sukhmel

J'ai eu le même problème avec IDLE, parce que je veux apprendre le Qt et que l'auto-complétion est donc très utile. Comme indiqué dans les paramètres de IDLE, vous pouvez déclencher la saisie semi-automatique avec "Contrôle + Espace", par ex. après un "QtGui". Ensuite, un menu s'ouvre dans lequel vous pouvez faire défiler les entrées à l'aide d'une flèche.

10
user2366975

Parfois, cela a à voir avec le temps que vous devez attendre pour obtenir des suggestions. 

Lorsque vous accédez à options > extensions > general à completions popup wait, vous pouvez le modifier à environ 500 ms. Dans mon cas, la valeur par défaut était 2000 ms.

0
FuruiTatsu

Dans mon cas, je devais ouvrir le menu Options -> onglet Extensions de l'éditeur et vérifier que la saisie semi-automatique et les autres options pertinentes étaient activées. Ils l’étaient en réalité, mais en cliquant simplement sur «Appliquer» alors que je ne devais rien changer, j’ai eu l’essentiel.

0
Vijayanand Settin