Python und Intellisense

70

Gibt es für Python ein Äquivalent zu "Intellisense"?

Vielleicht sollte ich es nicht zugeben, aber ich finde, dass Intellisense die „Entdeckungsphase“ des Lernens einer neuen Sprache wirklich beschleunigt. Zum Beispiel war der Wechsel von VB.net zu C # ein Kinderspiel, da mir Snippets und Intellisense geholfen haben.

Andrew Harry
quelle
Vielen Dank für all die tollen Vorschläge!
Andrew Harry
2
Lieben Sie die zufällige enge Abstimmung - was ist damit?
Andrew Harry
In gewisser Weise duplizieren: stackoverflow.com/questions/81584/what-ide-to-use-for-python
Tom Leys
1
Was Sie möchten, ist "Automatische Code-Vervollständigung" - Die Editoren, die dies unterstützen, werden mit AC neben ihrem Namen auf dem Originalposter unter stackoverflow.com/questions/81584/what-ide-to-use-for-python
Tom Leys
1
Alle Optionen werden wahrscheinlich in den vielen Fragen mit dem Tag python + ide behandelt: stackoverflow.com/questions/tagged/python+ide . Insbesondere sieht dieses wie ein fast genaues Duplikat aus: stackoverflow.com/questions/698/…
Jonik

Antworten:

32

In diesem Blogeintrag wird das Einrichten von Vim als Python-IDE erläutert. Er behandelt die Intellisense-ähnliche Funktionalität:

Python Intellsense
(Quelle: dispatched.ch )

Dies ist Standard in Vim 7. In Vim gibt es eine Reihe weiterer sehr nützlicher Plugins für die Python-Entwicklung, z. B. Pyflakes, das den Code im laufenden Betrieb überprüft, und Python_fn.vim , das Funktionen zum Bearbeiten von Python-Einrückungen und Codeblöcken bietet.

redigiert
quelle
1
Gibt es so etwas für Emacs?
JS
1
Ich fürchte, ich benutze keine Emacs! Ich bin auf diesen Blogeintrag gestoßen,
redigiert
Ich benutze diese Einstellungen jesshamrick.com/2012/09/18/emacs-as-a-python-ide
Chirag
23

Schauen Sie sich die Python-Tools für Visual Studio an . Sie bieten Code-Vervollständigung (auch bekannt als Intellisense), Debugging usw.

Unten sehen Sie einen Screenshot der interaktiven Python-Shell, der die Code-Vervollständigung zeigt.

Geben Sie hier die Bildbeschreibung ein

Frederic Heem
quelle
2
Denken Sie daran, dass Intellisense NICHT nur Code-Vervollständigung ist, sondern ein allgemeiner Begriff, der auch für die QuickInfos gilt, wenn Sie mit der Maus über eine Funktion oder Variable, auch bekannt als Code-Insight, fahren, die rechts neben der hervorgehobenen compileMethode angezeigt wird . Dies ist etwas, was fast alle Python-IDEs nicht richtig machen, wenn überhaupt, Eclipse kommt nur nahe, zeigt Ihnen jedoch nicht, welche Typen eine Variable enthalten oder eine Funktion annehmen / zurückgeben kann. (RE_Pattern in Ihrem Screenshot)
Tcll
18

Die PyDev- Umgebung für Eclipse verfügt über eine Intellisense-ähnliche Funktionalität für Python. Es help(item)ist sehr hilfreich, eine interaktive Konsole zusammen mit der Funktion offen zu halten .

Paul Fisher
quelle
Und im Gegensatz zu anderen Python "IDEs", die ich ausprobiert habe, werden sogar C-Erweiterungen (mindestens PyQt4) richtig angezeigt.
14

Die dynamische Natur der Sprache erschwert in der Regel die Analyse des Typs der automatischen Vervollständigung, sodass die Qualität der verschiedenen oben genannten Vervollständigungsmöglichkeiten stark variiert.

Obwohl es nicht genau das ist, wonach Sie gefragt haben, eignet sich die Ipython-Shell sehr gut für Erkundungsarbeiten. Wenn ich mit einem neuen Modul arbeite, neige ich dazu, es in Ipython zu ziehen und daran zu stöbern. Nachdem die meisten der oben genannten Lösungen ausprobiert wurden (obwohl Wing schon Jahre alt ist), sind die Fertigstellungsmöglichkeiten von ipython durchweg zuverlässiger. Die beiden Hauptwerkzeuge für die Erkundung sind die vollständige Registerkarte und das Anhängen eines Fragezeichens an den Modul- / Funktionsnamen, um den Hilfetext abzurufen, z.

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
Karl Guertin
quelle
9

Der mit Python gelieferte IDLE-Editor verfügt über eine Intellisense-Funktion, die importierte Module, Funktionen, Klassen und Attribute automatisch erkennt.

Soviut
quelle
oder Sie können einfach dir(object)dieselbe Attributliste abrufen. aber es ist weit entfernt von der informativen Intelligenz, die ich gewohnt bin.
Tcll
8

Ich kann PyDev nur empfehlen . In Pydev können Sie das verwendete Modul in die Forced Buildins einfügen . Meistens funktioniert die Code-Vervollständigung besser als in anderen IDEs wie KOMODO EDIT.

Ich denke auch, dass IPython sehr hilfreich ist. Da es in IPython "Laufzeit" ist, wird die Code-Vervollständigung in IPython nichts verpassen.

jagttt
quelle
1
Ich würde nicht empfehlen, PyDev zu verwenden. Ich habe es mit Django ein bisschen versucht und hatte viele ungelöste Abhängigkeiten, wenn es um Plugins wie Akismet oder Markdown ging. Ich habe viele Lösungen ausprobiert, aber am Ende hat es nicht funktioniert. Ich habe viel Gutes über PyCharm gehört, es aber nicht persönlich versucht.
Wojtek
@Wojtek, hast du eine andere IDE zu empfehlen? Ich habe PyDev, Sublime und Komodo Edit ausprobiert und Komodo ist sehr schön, weil es im Vergleich zu Eclipse leicht ist, aber ich habe einige Probleme beim Einrichten oder Verstehen der Art und Weise, wie es Intellisense funktioniert ...
RPDeshaies
1
@ Tareck117 Nein, ich bin nicht wirklich ein Pythonist, ich mache nur ab und zu einen kurzen Ausflug hinein. Ich verwende Sublime, aber nur für Skripte mit einer Datei, es ist keine IDE an sich. Wie gesagt, ich kann PyCharm empfehlen, einige meiner Python-Freunde verwenden es und mögen es. Ich habe gehört, es wurde kürzlich kostenlos (Community Edition) mit einigen eingeschränkten Funktionen, aber voll funktionsfähigem Intellisense. Sie sollten es versuchen. Es ist ein kommerzielles Produkt, daher gehe ich davon aus, dass es ordnungsgemäß funktioniert, kann jedoch keine Garantie übernehmen.
Wojtek
VS2010 (kann nicht höher verwendet werden) mit Python Tools ist das Beste, was ich mit Intellisense verwendet habe. Eclipse / PyDev bietet nicht so viele Informationen.
Tcll
7

PyCharm ist die beste Python-IDE mit IntelliSense-Unterstützung.

DNS
quelle
Erwähnenswert ist, dass IntelliSense für dynamische Module nicht unterstützt wird
Eduardo Pignatelli
6

Ich würde Komodo Edit empfehlen . Ich sollte jedoch auf etwas hinweisen: Sie werden nichts ganz so Gutes bekommen, wie Sie es von Visual Studios C # Intellisense gewohnt sind. Die dynamische Natur von Python kann es schwierig machen, diese Art von Funktionen auszuführen.

Jason Baker
quelle
4

ctags + vim funktioniert auch einwandfrei, obwohl es nicht so leistungsfähig ist wie Intellisense. Wenn Sie dies mit ipython verwenden, können Sie Online-Hilfe, automatische Namensvervollständigung usw. erhalten. Aber das ist offensichtlich befehlszeilenorientiert.

Eclipse + pydev kann das auch, aber ich habe keine Erfahrung damit: http://pydev.sourceforge.net/

David Cournapeau
quelle
4

Ich denke, der dynamischste Weg, Python zu lernen, ist die Verwendung von iPython .

Sie haben eine automatische Vervollständigung erhalten, wenn Sie ein dynamisches Tab-Verhalten verwenden, da es sich um eine Shell handelt und Sie die vollständige Dokumentation aller Objekt- / Methodentypen erhalten können:

object.method ?

Bei der Entwicklung stimme ich zu, dass PyDev cool ist. Aber es ist schwer, also ist ein Texteditor + iPython beim Lernen wirklich nett.

e-satis
quelle
2

Pyscripter hat die beste Intelligenz, die ich je getroffen habe :)

hugo24
quelle
1
In Pyscripter gibt es keine Intelligenz. Es gibt nur eine grundlegende automatische Vervollständigung.
DNS
1
Sie müssen wirklich Visual Studio Mate verwenden. PyScripter war eine der schlechtesten High-End-IDEs, die ich verwendet habe.
Tcll
3
Zu diesem Zeitpunkt würde ich Pycharm vorschlagen. Es ist wirklich gut geworden.
hugo24
2

Ich würde jedi-vim empfehlen , es ist perfekt für mich, probieren Sie es aus und Sie werden es nicht bereuen.

j5shi
quelle
0

IronPython ist der richtige Weg. Visual Studio bietet die beste Intellisense-Unterstützung, die Sie mit IronPython nutzen können

Seite? ˅
quelle
Ich würde empfehlen, einfach bei normalem Python zu bleiben. .NET ist sehr schlecht ... aber ich bin mir einig, dass VS die beste Intelligenz hat.
Tcll
0

Versuchen Sie es mit Visual Studio Code. Es bietet eine sehr leistungsstarke Python- und Django-Unterstützung sowie Tausende von Plugins für andere Sprachen, die in einem Python-Projekt verwendet werden, z. B. CSS-, HTML- und Django-Vorlagen.

Das Beste ist, dass es kostenlos ist: https://code.visualstudio.com

gehämmert
quelle