zurück zum Artikel

Sourcecode-Editor: Pylance bricht eine Lanze für Python in Visual Studio Code

Sourcecode-Editor: Pylance bricht eine Lanze für Python in Visual Studio Code

Die Erweiterung ergänzt Microsofts Python-Extension für Visual Studio Code und soll das Zusammenspiel mit IntelliSense verbessern.

Microsoft hat eine neue Python-Erweiterung für den Sourcecode-Editor Visual Studio Code veröffentlicht: Pylance arbeitet mit der Python Extension zusammen und bietet umfangreichere Funktionen im Zusammenspiel mit IntelliSense. Die Erweiterung arbeitet als Language Server und integriert den statischen Type Checker Pyright auf.

Der Name der Erweiterung ist wie die Programmiersprache Python eine Hommage an Monty Python. Der Blogbeitrag bezieht sich auf die Szene in "Die Ritter der Kokosnuss", in der Sir Lancelot die drei Fragen an der Brücke des Todes richtig beantwortet und seine Suche nach dem heiligen Gral fortsetzen darf.

Die Erweiterung setzt auf das Language Server Protocol (LSP), das Microsoft 2016 zusammen mit Codenvy und Red Hat vorgestellt hat und das zahlreiche Funktionen wie Autovervollständigung unabhängig von der Entwicklungsumgebung über einzelne Language Server ermöglicht. Pylance integriert Pyright [1], das ebenfalls als separate Extension für Visual Studio Code verfügbar ist. Der statische Type Checker zielt vor allem auf große Python-Codebasen ab.

Pylance stellt im Editor die umfangreichen Typinformationen mit potenziell verfügbaren Erklärungen bereit. Visual Studio Code zeigt beim Tippen von Funktionssignaturen oder beim Überfahren von Sourcecode mit der Maus die Informationen an.

Die Erweiterung zeigt umfangreiche Informationen zu Funktionen beim Tippen an.

Die Erweiterung zeigt umfangreiche Informationen zu Funktionen beim Tippen an.

(Bild: Microsoft)

Die Erweiterung bietet zudem automatische Importe: Bei Verwendung von Funktionen aus externen Libraries schlägt der Editor das Einfügen der passenden import-Anweisungen am Anfang der Datei vor.

Der Type Checker kommt beim Setzen der Umgebungsvariable python.analysis.typeCheckingMode auf basic oder strict zur Geltung, indem er vor allem Grenzfälle für fehlerhafte Typen in Funktionsaufrufen aufspürt.

Microsoft

Pylance findet potenziell fehlerhafte Typen im Sourcecode.

(Bild: Microsoft)

Pylance setzt die Python-Erweiterung für Visual Studio Code [2] voraus und arbeitet eng mit ihr zusammen: Entwickler können die neue Extension in der Python Extension als Language Server auswählen. Wer bereits die Pyright Extension für die statische Codeanalyse verwendet, sollte sie jedoch deinstallieren. Sie ist in Pylance enthalten und das Nebeneinander kann wohl zu Installationskonflikten oder doppelten Warnungen beziehungsweise Fehlermeldungen für falsche Typzuweisungen führen.

Derzeit können Entwickler entscheiden, welchen Language Server sie für Python in Visual Studio Code verwenden möchten. Langfristig soll Pylance jedoch den bisherigen Microsoft Python Language Server ersetzen, da es zum einen wohl performanter ist und zum anderen mehr Funktionen wie den Autoimport mitbringt.

Weitere Details lassen sich dem Entwicklerblog bei Microsoft entnehmen [3]. Pylance ist über den Visual Studio Marketplace verfügbar [4]. Über das Zusammenspiel mit anderen Sourcecode-Editors oder Entwicklungsumgebungen wie Eclipse schweigt sich das Team jedoch aus. Die Erweiterung ist zwar kostenlos, aber anders als Visual Studio Code zumindest zum aktuellen Zeitpunkt kein Open-Source-Projekt. Das zugehörige GitHub-Repository [5] dient vor allem zur Kommunikation mit Nutzern. Die Frage nach der Offenlegung des Sourcecodes ist bereits eins der ersten eingereichten Issues [6].

(rme [7])


URL dieses Artikels:
https://www.heise.de/-4800420

Links in diesem Artikel:
[1] https://github.com/microsoft/pyright
[2] https://marketplace.visualstudio.com/items?itemName=ms-python.python
[3] https://devblogs.microsoft.com/python/announcing-pylance-fast-feature-rich-language-support-for-python-in-visual-studio-code/
[4] https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance
[5] https://github.com/microsoft/pylance-release
[6] https://github.com/microsoft/pylance-release/issues/4
[7] mailto:rme@ix.de