web-dev-qa-db-fra.com

Python et Intellisense

Existe-t-il un équivalent à "intellisense" pour Python?

Je ne devrais peut-être pas l'admettre, mais je trouve qu'intelliSense accélère vraiment la «phase de découverte» de l'apprentissage d'une nouvelle langue. Par exemple, passer de VB.net à C # était un jeu d'enfant grâce aux snippets et à l'intellisense qui m'aidaient.

67
Andrew Harry

Cette entrée de blog explique comment configurer Vim en tant qu'EDI Python, il couvre les fonctionnalités de type Intellisense:

Python Intellsense http://blog.dispatched.ch/wp-content/uploads/2009/05/omnicompletion.png

Ceci est standard dans Vim 7. Il existe un certain nombre d’autres plugins très utiles pour le développement de python dans Vim, tels que Pyflakes qui vérifie le code à la volée et Python_fn.vim qui fournit des fonctionnalités pour manipuler l’indentation de python. & blocs de code.

32
redacted

Jetez un coup d'œil à les outils python pour visual studio , ils fournissent l'achèvement du code (a.k.a intellisense), le débogage, etc.

Vous trouverez ci-dessous une capture d'écran du shell interactif pour python indiquant l'achèvement du code.

enter image description here

23
Frederic Heem

L’environnement PyDev pour Eclipse dispose de fonctionnalités similaires à Intellisense pour Python. Garder une console interactive ouverte, ainsi que la fonction help(item) est très utile.

19
Paul Fisher

La nature dynamique de la langue rend difficile l’analyse de type autocomplete, de sorte que la qualité des divers moyens d’achèvement décrits ci-dessus varie énormément.

Bien que ce ne soit pas exactement ce que vous avez demandé, le shell ipython est très utile pour les travaux exploratoires. Quand je travaille avec un nouveau module, j'ai tendance à le tirer dans ipython et à le fouiller. Après avoir essayé la plupart des solutions mentionnées ci-dessus (bien que cela fasse des années que Wing), les installations de complétion d’ipython sont toujours plus fiables. Les deux principaux outils d’exploration sont les onglets complets et l’ajout d’un point d’interrogation au nom du module/de la fonction pour obtenir le texte d’aide, par exemple:

In [1]: import sqlalchemy

In [2]: sqlalchemy.s #tab completion
sqlalchemy.schema    sqlalchemy.select    sqlalchemy.sql       sqlalchemy.subquery

In [2]: sqlalchemy.select? #Shows docstring

In [3]: sqlalchemy.select?? #Shows method source

In [4]: edit sqlalchemy.select #opens the source in an editor
15
Karl Guertin

Je recommande fortement PyDev . Dans Pydev, vous pouvez mettre le module que vous utilisez dans le répertoire Forced Buildins , la plupart du temps, l'achèvement du code fonctionnera mieux que dans d'autres IDE comme KOMODO EDIT.

Aussi, je pense que IPython est très utile. Puisqu'il s'agit d'une «exécution» dans IPython, l'achèvement du code dans IPython ne manquera de rien.

9
jagttt

L'éditeur IDLE fourni avec Python possède une fonctionnalité intellisense qui détecte automatiquement les modules, fonctions, classes et attributs importés.

8
Soviut

PyCharm est le meilleur Python IDE avec le support IntelliSense.

7
dns

Wingware, par exemple, implémente l'auto-complétion, voir http://wingware.com/doc/edit/auto-completion .

5
Alex Martelli

Je recommanderais Komodo Edit . Cependant, je dois souligner quelque chose: vous n'obtiendrez rien d'aussi bon que celui auquel vous êtes habitué avec l'intisisense C # de Visual Studio. La nature dynamique de Python peut rendre difficile l’utilisation de ce type de fonctionnalités.

5
Jason Baker

ctags + vim fonctionne bien aussi, bien que ce ne soit pas aussi puissant qu'intelliSense. En utilisant cela avec ipython, vous pouvez obtenir de l’aide en ligne, la complétion automatique du nom, etc.

Eclipse + pydev peut aussi le faire, mais je n’ai aucune expérience avec cela: http://pydev.sourceforge.net/

4
David Cournapeau

Eh bien, je pense que le moyen le plus dynamique d’apprendre Python est d’utiliser iPython .

Vous avez l'auto-complétion lorsque vous utilisez tab, comportement dynamique car c'est un shell et vous pouvez obtenir la documentation complète de tout type d'objet/méthode:

object.method ?

Lors du développement, je conviens que PyDev est cool. Mais c'est lourd, alors en apprenant, un éditeur de texte + iPython est vraiment agréable.

3
e-satis

Je recommanderais jedi-vim , c'est parfait pour moi, essayez et vous ne le regretterez pas.

2
j5shi

Pyscripter a le meilleur intellisense que j'ai rencontrer :)

2
hugo24

Pour emacs et VI, il y a aussi https://github.com/tkf/emacs-jedi .

2
Adam Benzan

IronPython est la voie à suivre. Visual Studio offre le meilleur support intellisense et vous pouvez l'utiliser avec IronPython

0
SiTe

Essayez Visual Studio Code. Il offre un support très puissant pour Python et Django et des milliers de plugins pour d’autres langages utilisés dans un projet Python, tels que les modèles CSS, HTML et Django. 

Mieux encore, il est gratuit: https://code.visualstudio.com

0
hamzed