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

Formatierung von Python in VS Code

Formatierung macht Quellcode für Menschen leichter lesbar. Durch die Erzwingung bestimmter Regeln und Konventionen wie Zeilenabstände, Einrückungen und Abstände um Operatoren wird der Code visuell organisierter und verständlicher. Ein Beispiel finden Sie auf der autopep8-Seite. Beachten Sie, dass die Formatierung die Funktionalität des Codes selbst nicht beeinflusst.

Linting hilft, Fehler zu vermeiden, indem Code auf gängige syntaktische, stilistische und funktionale Fehler sowie unkonventionelle Programmierpraktiken analysiert wird. Obwohl es geringfügige Überschneidungen zwischen Formatierung und Linting gibt, ergänzen sich die beiden Funktionen.

Formatierer auswählen

Suchen Sie im VS Code Marketplace nach der Formatiererweiterung Ihrer Wahl.

Microsoft veröffentlicht die folgenden Formatiererweiterungen

Formatierer Erweiterung
autopep8 https://marketplace.visualstudio.com/items?itemName=ms-python.autopep8
Black Formatter https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter

Formatiererweiterungen, die von der Community angeboten werden

Formatierer Erweiterung
Ruff https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff
yapf https://marketplace.visualstudio.com/items?itemName=eeyore.yapf

Darüber hinaus gibt es Formatiererweiterungen, die die Sortierung von Importen unterstützen

Formatierer Erweiterung
Ruff https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff
isort https://marketplace.visualstudio.com/items?itemName=ms-python.isort

Hinweis: Wenn Sie Ihren bevorzugten Formatierer nicht in der obigen Tabelle oder im Marketplace finden, können Sie über eine Erweiterung Unterstützung dafür hinzufügen. Sie können die Python Extension Template verwenden, um neue Python-Tools in VS Code zu integrieren.

Standardformatierer festlegen

Nachdem Sie eine Formatiererweiterung installiert haben, können Sie diese als Standardformatierer für Python-Dateien in VS Code auswählen, indem Sie die folgenden Schritte ausführen

  1. Öffnen Sie eine Python-Datei in VS Code.
  2. Klicken Sie mit der rechten Maustaste auf den Editor, um das Kontextmenü anzuzeigen.
  3. Wählen Sie Mit... formatieren.
  4. Wählen Sie im Dropdown-Menü Standardformatierer konfigurieren....
  5. Wählen Sie Ihre bevorzugte Formatiererweiterung aus der Liste aus.

Alternativ können Sie ihn als Standardformatierer für alle Python-Dateien festlegen, indem Sie "editor.defaultFormatter" in Ihrer Benutzer-settings.json-Datei unter einem [python]-Geltungsbereich setzen. Sie können settings.json mit dem Befehl Preferences: Open User Settings (JSON) öffnen.

Um beispielsweise Black Formatter als Standardformatierer festzulegen, fügen Sie die folgende Einstellung zu Ihrer Benutzer-settings.json-Datei hinzu

  "[python]": {
    "editor.defaultFormatter": "ms-python.black-formatter"
  }

Um eine Formatiererweiterung als Import-Sorter festzulegen, können Sie Ihre Präferenz unter "editor.codeActionsOnSave" in Ihrer Benutzer-settings.json-Datei oder Ihrer Arbeitsbereichs-settings.json-Datei unter einem [python]-Geltungsbereich festlegen. Sie können diese settings.json-Dateien mit den Befehlen Preferences: Open User Settings (JSON) und Preferences: Open Workspace Settings (JSON) öffnen. Dies aktiviert die Import-Sortierung beim Speichern für alle Python-Dateien.

Um beispielsweise Ruff als Ihren bevorzugten Import-Sorter festzulegen, können Sie die folgende Einstellung zu Ihrer Benutzer-settings.json- oder Ihrer Arbeitsbereichs-settings.json-Datei hinzufügen

{
  "[python]": {
    "editor.codeActionsOnSave": {
      "source.organizeImports.ruff": "explicit"
    }
  }
}

Code formatieren

Sie können Ihren Code formatieren, indem Sie mit der rechten Maustaste auf den Editor klicken und Dokument formatieren auswählen oder die Tastenkombination ⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I) verwenden.

Sie können auch die folgende Einstellung zu Ihrer Benutzer-settings.json-Datei hinzufügen, um die Formatierung beim Speichern für Ihren Code zu aktivieren

  "[python]": {
    "editor.formatOnSave": true
  }

Allgemeine Formatierungseinstellungen

Sie können im README jeder Formatiererweiterung weitere Details zu den unterstützten Einstellungen finden. Die folgenden Einstellungen werden von den meisten Formatiererweiterungen unterstützt

Einstellungs-Suffix
Standardwert Beschreibung
args [] An die Formatierungsfunktion zu übergebende Argumente. Jedes Argument sollte als separater String im Array übergeben werden.
Zum Beispiel
black-formatter.args: ["--line-length", "100"]
importStrategy useBundled Wenn auf useBundled gesetzt, verwendet die Erweiterung die Version des Tools, die sie mitliefert. Wenn auf fromEnvironment gesetzt, versucht sie zuerst, aus Ihrer ausgewählten Python-Umgebung zu laden, andernfalls greift sie auf die mitgelieferte Version zurück.
path "" Pfad zur Binärdatei des Formatierers, die für die Formatierung verwendet werden soll. Hinweis: Die Verwendung dieser Option kann die Formatierung verlangsamen.
interpreter [] Wenn auf einen Pfad zu einer Python-Executable gesetzt, wird die Erweiterung diese zum Starten des Formatierer-Servers und seiner Unterprozesse verwenden.
showNotifications aus Steuert, wann Benachrichtigungen von der Erweiterung angezeigt werden. Unterstützte Werte sind off, always, onError und onWarning.

Formatierungsprobleme beheben

Wenn die Formatierung fehlschlägt, überprüfen Sie die folgenden möglichen Ursachen

Problem Lösung
Es sind mehrere Formatierer für Python-Dateien verfügbar. Legen Sie den Standardformatierer fest, indem Sie die Anweisungen im Abschnitt oben befolgen.
Die Option "Mit... formatieren" ist nicht verfügbar. Wenn Sie diese Option im Kontextmenü nicht sehen, haben Sie wahrscheinlich keine Formatiererweiterung installiert oder in VS Code aktiviert. Beziehen Sie sich auf den Abschnitt Formatierer auswählen, um zu erfahren, wie Sie eine Python-Formatiererweiterung installieren können.
Benutzerdefinierte Argumente für den Formatierer sind falsch. Überprüfen Sie, ob die entsprechende Einstellung <formatter>.path keine Argumente enthält und ob <formatter>.args eine Liste einzelner oberster Argumentelemente enthält.
Die Benachrichtigung "Sie haben veraltete Linting- oder Formatierungseinstellungen" wird angezeigt. Wenn Sie diese Benachrichtigung sehen, bedeutet dies, dass Sie Einstellungen wie python.linting oder python.formatting in VS Code haben. Diese Einstellungen werden von der Python-Erweiterung nicht mehr unterstützt, da die Unterstützung für Linting und Formatierung auf Tool-Erweiterungen migriert wurde.
Der Befehl Auswahl formatieren schlägt bei der Verwendung von Black Formatter fehl. black unterstützt das Formatieren von Codeabschnitten nicht. Um diese Einschränkung zu umgehen, können Sie "Beim Einfügen formatieren" deaktivieren und formatOnSave einstellen, um die gesamte Datei mit den folgenden Einstellungen zu formatieren: "[python]": {"editor.formatOnPaste": false, "editor.formatOnSaveMode": "file"}.
Formatierung funktioniert nicht, obwohl ich eine Formatiererweiterung installiert habe. Formatierung kann aus verschiedenen Gründen fehlschlagen, z. B. wegen Syntaxfehlern in Ihrem Code, einer nicht unterstützten Python-Version oder einer fehlerhaften Konfiguration des Formatierers. Überprüfen Sie den Ausgabe-Kanal der Formatiererweiterung, um zu verstehen, warum der Formatierer fehlgeschlagen ist (führen Sie den Befehl Output: Focus on Output in der Befehlspalette aus und wählen Sie dann den Kanal der Formatiererweiterung aus).

Hinweis: Wenn Sie Ihren bevorzugten Formatierer nicht oben aufgeführt finden, können Sie über eine Erweiterung Unterstützung dafür hinzufügen. Die Python Extension Template erleichtert die Integration neuer Python-Tools in VS Code.

Nächste Schritte

  • 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.
  • Python Extension Template - Erstellen Sie eine Erweiterung, um Ihren bevorzugten Linter in VS Code zu integrieren.
© . This site is unofficial and not affiliated with Microsoft.