ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

Python in Visual Studio Code bearbeiten

Visual Studio Code ist ein leistungsstarkes Bearbeitungswerkzeug für Python-Quellcode. Der Editor enthält verschiedene Funktionen, die Ihnen helfen, beim Schreiben von Code produktiv zu sein. Weitere Informationen zur Bearbeitung in Visual Studio Code finden Sie unter Grundlegende Bearbeitung und Code-Navigation.

In dieser Übersicht beschreiben wir die spezifischen Bearbeitungsfunktionen der Python-Erweiterung, einschließlich Anweisungen zur Anpassung dieser Funktionen über Benutzer- und Arbeitsbereichs-Einstellungen.

Autovervollständigung und IntelliSense

IntelliSense ist ein allgemeiner Begriff für Code-Bearbeitungsfunktionen, die sich auf die Codevervollständigung beziehen. Nehmen Sie sich einen Moment Zeit, um das folgende Beispiel zu betrachten. Wenn print eingegeben wird, beachten Sie, wie IntelliSense Autovervollständigungsoptionen anzeigt. Dem Benutzer wird auch eine Liste von Optionen angezeigt, wenn er mit der Eingabe des Variablen namens greeting beginnt.

Hello World Example for IntelliSense

Autovervollständigung und IntelliSense werden für alle Dateien im aktuellen Arbeitsordner bereitgestellt. Sie sind auch für Python-Pakete verfügbar, die an Standardorten installiert sind.

Pylance ist der Standard-Sprachserver für Python in VS Code und wird zusammen mit der Python-Erweiterung installiert, um IntelliSense-Funktionen bereitzustellen.

Pylance basiert auf Microsofts Pyright-Tool zur statischen Typüberprüfung und nutzt Typ-Stubs (.pyi-Dateien) und lazy Type Inferencing, um ein hochperformantes Entwicklungserlebnis zu bieten.

Weitere Informationen zu IntelliSense im Allgemeinen finden Sie unter IntelliSense.

Tipp: Sehen Sie sich die IntelliCode-Erweiterung für VS Code an. IntelliCode bietet eine Reihe von KI-gestützten Funktionen für IntelliSense in Python, wie z. B. die Ableitung der relevantesten Autovervollständigungen basierend auf dem aktuellen Code-Kontext. Weitere Informationen finden Sie im IntelliCode für VS Code FAQ.

IntelliSense-Verhalten anpassen

Die Aktivierung des vollständigen Satzes von IntelliSense-Funktionen standardmäßig könnte Ihr Entwicklungserlebnis verlangsamen. Daher aktiviert die Python-Erweiterung eine minimale Reihe von Funktionen, die Ihnen ermöglichen, produktiv zu sein und gleichzeitig eine performante Erfahrung zu haben. Sie können das Verhalten der Analyse-Engine jedoch über mehrere Einstellungen nach Ihren Wünschen anpassen.

Automatische Importe aktivieren

Pylance bietet automatische Importvorschläge für Module in Ihrem Arbeitsbereich und für Pakete, die Sie in Ihrer Umgebung installiert haben. Während Sie im Editor tippen, erhalten Sie möglicherweise Vervollständigungsvorschläge. Wenn Sie den Vorschlag akzeptieren, fügt der automatische Import automatisch die entsprechende Importanweisung zu Ihrer Datei hinzu.

Sie können automatische Importe aktivieren, indem Sie python.analysis.autoImportCompletions in Ihren Einstellungen auf true setzen. Standardmäßig sind automatische Importe deaktiviert.

Completion with auto import displayed on the suggestion list

IntelliSense für benutzerdefinierte Paketpfade aktivieren

Um IntelliSense für Pakete zu aktivieren, die an nicht standardmäßigen Orten installiert sind, fügen Sie diese Orte zur Sammlung python.analysis.extraPaths in Ihrer settings.json-Datei hinzu (die Standardsammlung ist leer). Sie haben möglicherweise beispielsweise Google App Engine an benutzerdefinierten Orten installiert, die in app.yaml angegeben sind, wenn Sie Flask verwenden. In diesem Fall würden Sie diese Orte wie folgt angeben:

Windows

"python.analysis.extraPaths": [
    "C:/Program Files (x86)/Google/google_appengine",
    "C:/Program Files (x86)/Google/google_appengine/lib/flask-0.12"]

macOS/Linux

"python.analysis.extraPaths": [
    "~/.local/lib/Google/google_appengine",
    "~/.local/lib/Google/google_appengine/lib/flask-0.12" ]

Für die vollständige Liste der verfügbaren IntelliSense-Steuerungen können Sie die Code-Analyse-Einstellungen und Autovervollständigungs-Einstellungen der Python-Erweiterung einsehen.

Sie können auch das allgemeine Verhalten von Autovervollständigung und IntelliSense anpassen und die Funktionen sogar vollständig deaktivieren. Weitere Informationen finden Sie unter Anpassen von IntelliSense.

Vervollständigen von Code mit KI verbessern

GitHub Copilot ist ein KI-gestütztes Code-Vervollständigungstool, das Ihnen hilft, Code schneller und intelligenter zu schreiben. Sie können die GitHub Copilot-Erweiterung in VS Code verwenden, um Code zu generieren oder aus dem generierten Code zu lernen.

GitHub Copilot extension in the VS Code Marketplace

GitHub Copilot bietet Vorschläge für zahlreiche Sprachen und eine breite Palette von Frameworks und funktioniert besonders gut für Python, JavaScript, TypeScript, Ruby, Go, C# und C++.

Sie können mehr darüber erfahren, wie Sie mit Copilot beginnen können, in der Copilot-Dokumentation.

Navigation

Beim Bearbeiten können Sie mit der rechten Maustaste auf verschiedene Bezeichner klicken, um mehrere praktische Befehle zu nutzen

  • Definition anzeigen (F12) springt von Ihrem Code in den Code, der ein Objekt definiert. Dieser Befehl ist hilfreich, wenn Sie mit Bibliotheken arbeiten.

  • Definition einblenden (⌥F12 (Windows Alt+F12, Linux Ctrl+Shift+F10)) ist ähnlich, zeigt aber die Definition direkt im Editor an (wodurch im Editorfenster Platz geschaffen wird, um keinen Code zu verdecken). Drücken Sie Escape, um das Einblendungsfenster zu schließen, oder verwenden Sie das x in der oberen rechten Ecke.

  • Deklaration anzeigen springt zu der Stelle, an der die Variable oder ein anderes Objekt in Ihrem Code deklariert wurde.

  • Deklaration einblenden ist ähnlich, zeigt aber die Deklaration direkt im Editor an. Verwenden Sie auch hier Escape oder das x in der oberen rechten Ecke, um das Einblendungsfenster zu schließen.

Schnelle Korrekturen

Import hinzufügen

Bei der Verwendung von Pylance ermöglicht die Quick-Fix-Funktion "Import hinzufügen", Importanweisungen für Module, die in Ihrer Umgebung installiert sind, schnell zu vervollständigen. Wenn Sie mit der Eingabe eines Paketnamens im Editor beginnen, steht eine Code-Aktion zur Verfügung, um die Quelldatei automatisch zu vervollständigen. Bewegen Sie den Mauszeiger über den Text (mit einer Wellenlinie markiert) und wählen Sie die Glühbirne für Code-Aktionen aus. Sie können dann aus der Liste potenzieller Importe auswählen.

Add import code action

Diese Code-Aktion erkennt auch einige beliebte Abkürzungen für die folgenden gängigen Python-Pakete: numpy als np, tensorflow als tf, pandas als pd, matplotlib.pyplot als plt, matplotlib als mpl, math als m, scipi.io als spio und scipy als sp, panel als pn und holoviews als hv.

Common package abbreviations

Die Liste der Importvorschläge zeigt die Top 3 Importoptionen mit hoher Konfidenz an, priorisiert nach: zuletzt verwendete Importe, Symbole aus demselben Modul, Symbole aus der Standardbibliothek, Symbole aus Benutzer-Modulen, Symbole aus Drittanbieter-Paketen und schließlich sortiert nach Modul- und Symbolnamen.

Nach zusätzlichen Importübereinstimmungen suchen

Standardmäßig zeigt die Quick-Fix-Funktion "Import hinzufügen" nur 3 Importoptionen mit hoher Konfidenz an. Wenn die gewünschten Optionen nicht aufgeführt sind, können Sie die Quick-Fix-Funktion "Pylance Nach zusätzlichen Importübereinstimmungen suchen" für fehlende Importfehler verwenden. Diese Quick-Fix-Funktion zeigt ein Menü zur schnellen Auswahl an, mit dem Sie nach Importoptionen suchen können, die mit dem fehlenden Importsymbol übereinstimmen.

Search for additional import matches Code Action

Rechtschreibung ändern

Pylance zeigt die Quick-Fix-Funktion "Rechtschreibung ändern" für nicht aufgelöste Variablen oder fehlende Importdiagnosen an, wenn diese wahrscheinlich durch Tippfehler verursacht werden. Diese Code-Aktion schlägt die korrekte Schreibweise des Symbols vor, basierend auf den nächstgelegenen Übereinstimmungen im Arbeitsbereich.

Change spelling code action on missing import due to a typo

Hinweis: Bei Benutzersymbolen schlagen diese Quick-Fixes nur die Importe aus den Dateien vor, in denen sie definiert sind. Importvorschläge aus Dateien, in denen die Benutzersymbole extern/importiert sind, werden nicht unterstützt.

Beachten Sie auch, dass für Symbole, die aus installierten Paketen stammen (normalerweise unter dem Ordner site-packages Ihrer Python-Umgebung), nur diejenigen, die im Stammverzeichnis des Pakets definiert sind, wie z. B. in der Datei __init__.py, von diesen Quick-Fixes vorgeschlagen werden. Sie können dieses Verhalten für bestimmte Pakete über die Einstellung python.analysis.packageIndexDepths anpassen, aber bitte beachten Sie, dass dies die Leistung von Pylance beeinträchtigen kann.

Refactorings

Die Python-Erweiterung fügt die folgenden Refactoring-Funktionen über die Pylance-Erweiterung hinzu: Variable extrahieren, Methode extrahieren, Modul umbenennen, Symbol verschieben und Alle geerbten abstrakten Klassen implementieren. Sie unterstützt auch Erweiterungen, die zusätzliche Refactoring-Funktionen implementieren, wie z. B. Importe sortieren.

Variable extrahieren

Extrahiert alle ähnlichen Vorkommen des ausgewählten Texts im aktuellen Gültigkeitsbereich und ersetzt sie durch eine neue Variable.

Sie können diesen Befehl aufrufen, indem Sie die Zeile Code auswählen, die Sie als Variable extrahieren möchten. Wählen Sie dann die Glühbirne aus, die daneben angezeigt wird.

Refactoring a variable

Methode extrahieren

Extrahiert alle ähnlichen Vorkommen des ausgewählten Ausdrucks oder Blocks im aktuellen Gültigkeitsbereich und ersetzt sie durch einen Methodenaufruf.

Sie können diesen Befehl aufrufen, indem Sie die Zeilen Code auswählen, die Sie als Methode extrahieren möchten. Wählen Sie dann die Glühbirne aus, die daneben angezeigt wird.

Refactoring code into a method

Modul umbenennen

Nachdem eine Python-Datei/ein Modul umbenannt wurde, kann Pylance alle Instanzen finden, die möglicherweise aktualisiert werden müssen, und Ihnen eine Vorschau aller Änderungen anzeigen.

Um anzupassen, welche Referenzen aktualisiert werden müssen, können Sie die Kontrollkästchen auf Zeilenebene oder auf Dateiebene in Refactoring-Vorschau umschalten. Sobald Sie Ihre Auswahl getroffen haben, können Sie Refactoring anwenden oder Refactoring verwerfen auswählen.

Renaming a module

Symbol verschieben

Die Pylance-Erweiterung bietet zwei Code-Aktionen, um den Prozess des Verschiebens von Symbolen in verschiedene Dateien zu vereinfachen

  • Symbol verschieben nach...: zeigt einen Dateiauswahl an, um die Zieldatei auszuwählen, in die das Symbol verschoben werden soll.
  • Symbol in neue Datei verschieben: erstellt eine neue Datei mit dem Symbolnamen im selben Verzeichnis wie die Quelldatei, in der die Code-Aktion aufgerufen wurde.

Sie können auf diese Code-Aktionen zugreifen, indem Sie mit der Maus über das zu verschiebende Symbol fahren und dann die Glühbirne auswählen, die neben der gewünschten Aktion erscheint. Alternativ können Sie mit der rechten Maustaste auf das Symbol klicken und im Kontextmenü Refactor... auswählen.

Move Symbol refactoring options

Alle geerbten abstrakten Klassen implementieren

In Python dienen abstrakte Klassen als "Blaupausen" für andere Klassen und helfen beim Aufbau modularer, wiederverwendbarer Codes, indem sie eine klare Struktur und Anforderungen für Unterklassen fördern. Um eine abstrakte Klasse in Python zu definieren, können Sie eine Klasse erstellen, die von der ABC-Klasse im abc-Modul erbt, und ihre Methoden mit dem Dekorator @abstractmethod annotieren. Dann können Sie neue Klassen erstellen, die von dieser abstrakten Klasse erben, und eine Implementierung für die Basis-Methoden definieren.

Pylance bietet eine Code-Aktion, um die Erstellung dieser Klassen zu vereinfachen. Wenn Sie eine neue Klasse definieren, die von einer abstrakten Klasse erbt, können Sie jetzt die Code-Aktion Alle geerbten abstrakten Klassen implementieren verwenden, um automatisch alle abstrakten Methoden und Eigenschaften der Oberklasse zu implementieren.

Implement inherited abstract classes

Importe sortieren

Die Python-Erweiterung unterstützt Erweiterungen wie isort und Ruff, die die Funktionalität Importe sortieren implementieren. Dieser Befehl fasst bestimmte Importe aus demselben Modul zu einer einzigen import-Anweisung zusammen und organisiert import-Anweisungen in alphabetischer Reihenfolge.

Sie können dies aufrufen, indem Sie eine Erweiterung installieren, die das Sortieren von Importen unterstützt, dann die Befehlspalette öffnen (⇧⌘P (Windows, Linux Ctrl+Shift+P)) und Importe organisieren ausführen.

Tipp: Sie können der Befehl editor.action.organizeImports eine Tastenkombination zuweisen.

Sorting import statements

Fehlerbehebung

Hilfe bei gängigen IntelliSense- und Python-Bearbeitungsproblemen finden Sie in der folgenden Tabelle

Problem Ursache Lösung
Pylance bietet beim Hinzufügen von Importen nur auf oberster Ebene liegende Symboloptionen an. Standardmäßig werden nur Module auf oberster Ebene indiziert (Tiefe=1).
Zum Beispiel sehen Sie möglicherweise import matplotlib als Vorschlag, aber standardmäßig nicht import matplotlib.pyplot.
Versuchen Sie, die Tiefe zu erhöhen, bis zu der Pylance Ihre installierten Bibliotheken indizieren kann, über python.analysis.packageIndexDepths. Lesen Sie die Code-Analyse-Einstellungen.
Pylance fügt fehlende Importe nicht automatisch hinzu Die Einstellung für die Autovervollständigung von Importen ist möglicherweise deaktiviert. Überprüfen Sie den Abschnitt Automatische Importe aktivieren.
Automatische Importe sind aktiviert, aber Pylance importiert keine Symbole, die in anderen Dateien im Arbeitsbereich definiert sind, automatisch. Benutzerdefinierte Symbole (die nicht aus installierten Paketen oder Bibliotheken stammen) werden nur dann automatisch importiert, wenn sie bereits in Dateien verwendet wurden, die im Editor geöffnet sind.
Andernfalls sind sie nur über die Quick-Fix-Funktion Importe hinzufügen verfügbar.
Verwenden Sie die Quick-Fix-Funktion "Importe hinzufügen" oder stellen Sie sicher, dass Sie die relevanten Dateien in Ihrem Arbeitsbereich zuerst öffnen.
Pylance scheint langsam zu sein oder verbraucht zu viel Speicher, wenn an einem großen Arbeitsbereich gearbeitet wird. Die Pylance-Analyse wird für alle Dateien in einem bestimmten Arbeitsbereich durchgeführt. Wenn es Unterordner gibt, von denen Sie wissen, dass sie von der Pylance-Analyse ausgeschlossen werden können, können Sie deren Pfade zur Einstellung python.analysis.exclude hinzufügen. Alternativ können Sie versuchen, python.analysis.indexing auf false zu setzen, um den Indexer von Pylance zu deaktivieren (Hinweis: dies wirkt sich auch auf das Erlebnis von Vervollständigungen und automatischen Importen aus. Erfahren Sie mehr über die Indizierung in den Code-Analyse-Einstellungen).
Sie können kein benutzerdefiniertes Modul in Ihr Python-Projekt installieren. Das benutzerdefinierte Modul befindet sich an einem nicht standardmäßigen Ort (nicht mit pip installiert). Fügen Sie den Speicherort zur Einstellung python.autoComplete.extraPaths hinzu und starten Sie VS Code neu.

Pylance-Diagnosen

Pylance stellt standardmäßig Diagnosen für Python-Dateien im Fenster "Probleme" bereit.

Die folgende Liste enthält einige der häufigsten Diagnosen, die von Pylance bereitgestellt werden, und wie Sie sie beheben können.

importResolveSourceFailure

Dieser Fehler tritt auf, wenn Pylance Typ-Stubs für das importierte Paket finden kann, aber das Paket selbst nicht finden kann. Dies kann passieren, wenn das Paket, das Sie zu importieren versuchen, nicht in der ausgewählten Python-Umgebung installiert ist.

Fehlerbehebung

  • Wenn das Paket bereits in einem anderen Interpreter oder Kernel installiert ist, wählen Sie den richtigen Interpreter aus.
  • Wenn das Paket nicht installiert ist, können Sie es installieren, indem Sie den folgenden Befehl in einem aktivierten Terminal ausführen: python -m pip install {package_name}.

importResolveFailure

Dieser Fehler tritt auf, wenn Pylance weder das Paket oder Modul, das Sie importieren, noch dessen Typ-Stubs finden kann.

Fehlerbehebung

  • Wenn Sie ein Modul importieren, stellen Sie sicher, dass es sich in Ihrem Arbeitsbereich oder an einem Ort befindet, der in der Einstellung python.autoComplete.extraPaths enthalten ist.
  • Wenn Sie ein Paket importieren, das nicht installiert ist, können Sie es installieren, indem Sie den folgenden Befehl in einem aktivierten Terminal ausführen: python -m pip install {package_name}.
  • Wenn Sie ein Paket importieren, das bereits in einem anderen Interpreter oder Kernel installiert ist, wählen Sie den richtigen Interpreter aus.
  • Wenn Sie mit einer editierbaren Installation arbeiten und diese derzeit so konfiguriert ist, dass sie Import-Hooks verwendet, sollten Sie stattdessen die Verwendung von .pth-Dateien in Betracht ziehen, die nur Dateipfade enthalten, um die Kompatibilität zu verbessern und ein reibungsloseres Importverhalten zu gewährleisten. Erfahren Sie mehr in der Pyright-Dokumentation.

importCycleDetected

Dieser Fehler tritt auf, wenn Pylance eine zirkuläre Abhängigkeit zwischen zwei oder mehr Modulen erkennt.

Fehlerbehebung

Versuchen Sie, Ihre Importanweisungen neu zu ordnen, um die zirkuläre Abhängigkeit zu durchbrechen.


Die Schwere der Pylance-Diagnosen kann über die Einstellung python.analysis.diagnosticSeverityOverrides angepasst werden. Weitere Informationen finden Sie in der Referenz zu den Einstellungen.

Nächste Schritte

  • Linting - Aktivieren, konfigurieren und anwenden verschiedener Python-Linter.
  • Debugging - Erfahren Sie, wie Sie Python lokal und remote debuggen.
  • Testen - Konfigurieren Sie Testumgebungen und entdecken, führen Sie Tests aus und debuggen Sie sie.
  • Grundlegende Bearbeitung – Erfahren Sie mehr über den leistungsstarken VS Code-Editor.
  • Code-Navigation – Schnelles Bewegen durch Ihren Quellcode.
  • IntelliSense - Erfahren Sie mehr über IntelliSense-Funktionen.
  • Jupyter-Unterstützung - Erfahren Sie, wie Sie mit Jupyter Notebooks beginnen.
  • Python-Erweiterungsvorlage - Erstellen Sie eine Erweiterung zur Integration Ihrer bevorzugten Python-Tools.
© . This site is unofficial and not affiliated with Microsoft.