Python-Projekte in Visual Studio

Python-Anwendungen werden in der Regel nur mithilfe von Ordnern und Dateien definiert. Diese Struktur kann komplex werden, da Anwendungen wachsen und möglicherweise automatisch generierte Dateien, JavaScript für Webanwendungen usw. umfassen. Ein Visual Studio-Projekt kann Ihnen helfen, die Komplexität zu verwalten. Das Projekt (eine .pyproj-Datei) identifiziert alle Quell- und Inhaltsdateien, die mit Ihrem Projekt verbunden sind. Es enthält Buildinformationen für jede Datei, verwaltet diese Informationen zur Integration in Quellcodeverwaltungssysteme und unterstützt Sie bei der Organisation Ihrer Anwendung in logische Komponenten.

Screenshot, der ein im Projektmappen-Explorer von Visual Studio geöffnetes Python-Projekt zeigt.

Projekte werden immer in einer Visual Studio-Projektmappe verwaltet. Eine Lösung kann eine beliebige Anzahl von Projekten enthalten, die sich gegenseitig referenzieren können, z. B. ein Python-Projekt, das auf ein C++-Projekt verweist, das ein Erweiterungsmodul implementiert. Bei dieser Beziehung erstellt Visual Studio automatisch das C++-Projekt (falls erforderlich), wenn Sie mit dem Debuggen des Python-Projekts beginnen. Weitere Informationen finden Sie unter Projektmappen und Projekte in Visual Studio.

Visual Studio stellt verschiedene Python-Projektvorlagen bereit, um schnell mehrere Arten von Anwendungsstrukturen zu erstellen. Sie können eine Vorlage auswählen, um ein Projekt aus einer vorhandenen Ordnerstruktur zu erstellen oder ein sauber, leeres Projekt zu erstellen. Eine Liste der verfügbaren Vorlagen finden Sie in der Tabelle im Abschnitt Projektvorlagen.

Tipps für die Arbeit mit Python-Projekten

Sie müssen keine Projekte verwenden, um Python-Code in Visual Studio auszuführen, aber es bietet Vorteile. Überprüfen Sie zu Beginn die folgenden Überlegungen zum Arbeiten mit Projekten und Python.

  • In Visual Studio 2019 und höher können Sie einen Ordner mit Python-Code öffnen und den Code ausführen, ohne Visual Studio Projekt- und Projektmappendateien zu erstellen.

    Die geführten Schritte für diesen Ansatz sind im Artikel Schnellstart: Öffnen und Ausführen von Python-Code in einem Ordnerartikel verfügbar.

  • Sie benötigen kein Projekt, um Python-Code in Visual Studio auszuführen. Alle Visual Studio-Versionen funktionieren problemlos mit Python-Code.

    Sie können eine Python-Datei selbst öffnen und sofort auf AutoVervollständigen-, IntelliSense- und Debugging-Features zugreifen. Es gibt jedoch einige potenzielle Nachteile beim Arbeiten mit dem Code ohne Projekt:

    • Da der Code immer die globale Standardumgebung verwendet, stellen Sie möglicherweise falsche Vervollständigungen oder Fehler fest, wenn der Code für eine andere Umgebung vorgesehen ist.
    • Visual Studio analysiert alle Dateien und Pakete in dem Ordner, in dem die einzelne Datei geöffnet wird. Dieser Prozess kann erhebliche CPU-Zeit beanspruchen.
  • Sie können ein Visual Studio-Projekt aus vorhandenem Code erstellen. Dieser Ansatz wird im Abschnitt Erstellen eines Projekts aus vorhandenen Dateien beschrieben.

Grundlegende Projektaufgaben: Dateien, Umgebungen und Start

Wenn Sie Projekte mit Ihrem Python-Code verwenden, führen Sie grundlegende Aufgaben durch, einschließlich Hinzufügen von Dateien, Zuweisen einer Startdatei und Festlegen der Python-Interpreterumgebung.

Bei der Entwicklung Ihrer Anwendung müssen Sie Ihrem Projekt in der Regel neue Dateien verschiedenen Typs hinzufügen. Es ist einfach, weitere Dateien hinzuzufügen. Klicken Sie mit der rechten Maustaste auf Ihr Projekt, wählen Sie Hinzufügen>Vorhandenes Element aus, und suchen Sie nach dem Typ der hinzuzufügenden Datei. Mit der Option Hinzufügen>Neues Element wird ein Dialogfeld geöffnet, in dem Elementvorlagen angezeigt werden, die Sie zum Erstellen der neuen Datei verwenden können. Optionen umfassen leere Python-Dateien, eine Python-Klasse, einen Komponententest und verschiedene Dateien zu Webanwendungen. Sie können die Vorlagenoptionen mit einem Testprojekt ausprobieren, um zu erfahren, was in Ihrer Visual Studio-Version verfügbar ist. Weitere Informationen finden Sie in der Referenz zu Elementvorlagen.

Jedem Python-Projekt ist eine im Projektmappen-Explorer-Startdatei zugewiesen, die fett angezeigt wird. Die Startdatei wird ausgeführt, wenn Sie mit dem Debuggen beginnen (durch Auswählen von F5 oder Debuggen>Debuggen starten) oder wenn Sie Ihr Projekt im Fenster Interactive ausführen. Sie können dieses Fenster mit der Tastenkombination UMSCHALT+ALT+F5 öffnen oder Debuggen>Projekt in Python Interactive ausführen auswählen. Klicken Sie zum Ändern mit der rechten Maustaste auf die neue Datei, und wählen Sie Als Startelement festlegen (bzw. in älteren Visual Studio-Versionen Als Startdatei festlegen) aus.

Wenn Sie die ausgewählte Startdatei aus einem Projekt entfernen und keine neue auswählen, weiß Visual Studio nicht, mit welcher Python-Datei gestartet werden soll, wenn Sie versuchen, das Projekt auszuführen. In diesem Fall zeigt Visual Studio 2017 Version 15.6 und höher einen Fehler an. In früheren Versionen wird entweder ein Ausgabefenster geöffnet, in dem der Python-Interpreter ausgeführt wird, oder das Ausgabefenster wird geöffnet und dann sofort geschlossen. Wenn eine dieser Verhaltensweisen auftritt, überprüfen Sie, ob Sie eine zugewiesene Startdatei haben.

Tipp

Um das Ausgabefenster geöffnet zu halten, klicken Sie mit der rechten Maustaste auf Ihr Projekt, und wählen Sie Eigenschaften aus. Wählen Sie im Dialogfeld die Registerkarte Debuggen aus, und fügen Sie dann das -i-Flag zum Feld Interpreter-Argumente hinzu. Dieses Argument bewirkt, dass der Interpreter nach Abschluss eines Programms in den interaktiven Modus wechselt. Das Fenster bleibt geöffnet, bis Sie es schließen, z. B. mithilfe der Tastenkombination STRG+E+EINGABETASTE.

Ein neues Projekt ist immer der standardmäßigen globalen Python-Umgebung zugeordnet. Um das Projekt einer anderen Umgebung zuzuordnen (einschließlich virtueller Umgebungen), klicken Sie mit der rechten Maustaste auf den Knoten Python-Umgebungen im Projekt. Wählen Sie Umgebung hinzufügen und dann die gewünschten Umgebungen aus. Sie können auch das Dropdown-Steuerelement für Umgebungen auf der Symbolleiste verwenden, um eine Umgebung auszuwählen oder dem Projekt eine weitere Umgebung hinzuzufügen.

Screenshot, der den Befehl Umgebung hinzufügen in der Python-Symbolleiste von Visual Studio zeigt.

Um die aktive Umgebung zu ändern, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die gewünschte Umgebung, und wählen Sie Umgebung aktivieren aus, wie in der folgenden Abbildung dargestellt. Weitere Informationen finden Sie unter Zuweisen einer Umgebung für ein Projekt.

Screenshot, der zeigt, wie Sie eine Programmumgebung für ein Python-Projekt in Visual Studio aktivieren.

Projektvorlagen

Visual Studio bietet Ihnen viele Methoden zum Einrichten eines Python-Projekts, entweder von Grund auf oder aus vorhandenem Code. Wenn Sie eine Vorlage verwenden möchten, wählen Sie Datei>Neu>Projekt aus, oder klicken Sie mit der rechten Maustaste auf die Projektmappe in Projektmappen-Explorer, und wählen Sie Hinzufügen>Neues Projekt aus. Im Dialogfeld Neues Projekt können Sie Python-spezifische Vorlagen anzeigen, indem Sie nach Python suchen oder den Knoten Sprache>Python auswählen:

Screenshot, der das neue Projektdialogfeld mit den verfügbaren Python-Vorlagen in Visual Studio zeigt.

Die folgenden Vorlagen sind in Visual Studio Version 2022 verfügbar.

Template BESCHREIBUNG
Aus vorhandenem Python-Code Erstellt ein Visual Studio-Projekt aus vorhandenem Python-Code in einer Ordnerstruktur.
Python-Anwendung Bietet eine grundlegende Projektstruktur für eine neue Python-Anwendung mit einer einzelnen, leeren Quelldatei. Standardmäßig wird das Projekt im Konsoleninterpreter der globalen Standardumgebung ausgeführt. Sie können die Zuweisung einer anderen Umgebung ändern.
Webprojekte Auf verschiedenen Frameworks einschließlich Bottle, Django und Flask basierende Projekte für Web-Apps.
Hintergrundanwendung (IoT) Unterstützt die Bereitstellung von Python-Projekten zur Ausführung als Hintergrunddienste auf Geräten. Weitere Informationen finden Sie unter Windows IoT Dev Center.
Python-Erweiterungsmodul Diese Vorlage erscheint unter Visual C++, wenn Sie die nativen Python-Entwicklungstools mit der Python-Arbeitsauslastung in Visual Studio 2017 oder höher installiert haben (weitere Informationen finden Sie unter Installation). Die Vorlage stellt die grundlegende Struktur für eine C++-Erweiterungs-DLL bereit, ganz ähnlich der Struktur, die unter Erstellen einer C++-Erweiterung für Python beschrieben wird.

Die folgenden Vorlagen sind in Visual Studio Version 2019 verfügbar. Nicht alle Vorlagen, die in Version 2019 verfügbar sind, sind in früheren Versionen von Visual Studio verfügbar.

Template BESCHREIBUNG
Aus vorhandenem Python-Code Erstellt ein Visual Studio-Projekt aus vorhandenem Python-Code in einer Ordnerstruktur.
Python-Anwendung Bietet eine grundlegende Projektstruktur für eine neue Python-Anwendung mit einer einzelnen, leeren Quelldatei. Standardmäßig wird das Projekt im Konsoleninterpreter der globalen Standardumgebung ausgeführt. Sie können die Zuweisung einer anderen Umgebung ändern.
Webprojekte Auf verschiedenen Frameworks einschließlich Bottle, Django und Flask basierende Projekte für Web-Apps.
Hintergrundanwendung (IoT) Unterstützt die Bereitstellung von Python-Projekten zur Ausführung als Hintergrunddienste auf Geräten. Weitere Informationen finden Sie unter Windows IoT Dev Center.
Python-Erweiterungsmodul Diese Vorlage erscheint unter Visual C++, wenn Sie die nativen Python-Entwicklungstools mit der Python-Arbeitsauslastung in Visual Studio 2017 oder höher installiert haben (weitere Informationen finden Sie unter Installation). Die Vorlage stellt die grundlegende Struktur für eine C++-Erweiterungs-DLL bereit, ganz ähnlich der Struktur, die unter Erstellen einer C++-Erweiterung für Python beschrieben wird.
IronPython-Anwendung Verwendet IronPython standardmäßig und aktiviert das .NET-Interoperabilitäts- und Mixed-Mode-Debugging mit .NET-Sprachen. Diese Vorlage ähnelt der Python-Anwendungsvorlage.
IronPython-WPF-Anwendung Eine Projektstruktur mit IronPython mit Windows Presentation Foundation-XAML-Dateien für die Benutzeroberfläche der Anwendung. Visual Studio bietet einen XAML-Benutzeroberflächen-Designer, CodeBehind kann in Python geschrieben werden, und die Anwendung wird ohne Anzeige einer Konsole ausgeführt.
IronPython-Silverlight-Webseite Erstellt ein IronPython-Projekt, das in einem Browser mithilfe von Silverlight ausgeführt wird. Der Python-Code für die Anwendung ist auf der Webseite als Skript enthalten. Ein Codebaustein-Skript-Tag übernimmt JavaScript-Code, um die Ausführung von IronPython in Silverlight zu initialisieren, von wo aus der Python-Code mit dem DOM kommunizieren kann.
IronPython-Windows Forms-Anwendung Erstellt eine Projektstruktur mit IronPython und eine Benutzeroberfläche, die mithilfe von Windows Forms-Code erstellt wird. Die Anwendung wird ohne Anzeige einer Konsole ausgeführt.

Hinweis

Da Python eine interpretierte Programmiersprache ist, produzieren Python-Projekte in Visual Studio keine eigenständigen ausführbaren Dateien, wie andere Projekte in kompilierten Sprachen, z. B. C#. Weitere Informationen finden Sie unter Questions and answers (Fragen und Antworten).

Erstellen eines Projekts aus vorhandenen Dateien

Führen Sie die folgenden Schritte aus, um ein Projekt aus vorhandenen Dateien zu erstellen.

Wichtig

Der folgende Prozess verschiebt oder kopiert keine ursprünglichen Quelldateien. Wenn Sie mit einer Kopie Ihrer Dateien arbeiten möchten, duplizieren Sie zunächst den Ordner, und erstellen Sie dann das Projekt.

  1. Starten Sie Visual Studio, und klicken Sie auf Datei>Neu>Projekt.

  2. Suchen Sie im Dialogfeld Neues Projekt erstellen nach Python und wählen Sie die Vorlage Aus vorhandenem Python-Code aus und wählen Sie Weiter.

  3. Geben Sie im Dialogfeld Konfigurieren Sie Ihr neues Projekt einen Projektnamen und einen Speicherort ein, wählen Sie die Projektmappe aus, die das Projekt enthalten soll, und wählen Sie Erstellen.

  4. Legen Sie im Assistenten Neues Projekt aus vorhandenem Python-Code erstellen den Ordnerpfad zu Ihrem vorhandenen Code fest, legen Sie einen Filter für Dateitypen fest, geben Sie alle benötigten Suchpfade an und wählen Sie dann Weiter aus. Wenn Sie die Suchpfade nicht kennen, lassen Sie das Feld leer.

    Screenshot der Erstellung eines neuen Projekts aus vorhandenem Code, einschließlich der Auswahl des Ordnerpfads, der Dateitypfilter und der Suchpfade.

  5. Wählen Sie auf der nächsten Seite die Startdatei für Ihr Projekt aus. Visual Studio wählt den globalen Python-Standardinterpreter und die Standardversion aus. Sie können die Umgebung mithilfe des Dropdownmenüs ändern. Klicken Sie abschließend auf Weiter.

    Hinweis

    Im Dialogfeld werden nur Dateien im Stammordner angezeigt. Wenn sich die gewünschte Datei in einem Unterordner befindet, lassen Sie die Startdatei leer. Sie können die Startdatei im Projektmappen-Explorer festlegen, wie in einem späteren Schritt beschrieben.

    Screenshot des Fensters Neues Projekt aus vorhandenem Code erstellen, einschließlich der Auswahl der Startdatei und der Python-Umgebung.

  6. Wählen Sie den Speicherort aus, um die Projektdatei (eine .pyproj-Datei auf dem Datenträger) zu speichern. Sie können auch die automatische Erkennung virtueller Umgebungen einbeziehen und das Projekt für andere Webframeworks anpassen (falls zutreffend). Wenn Sie sich bei diesen Optionen nicht sicher sind, übernehmen Sie die Standardwerte für diese Felder.

    Screenshot des Fensters Neues Projekt aus vorhandenem Code erstellen, einschließlich des Speicherorts für die Projektdatei und anderer optionaler Einstellungen.

  7. Wählen Sie Fertig stellenaus.

    Visual Studio erstellt das Projekt und öffnet es im Projektmappen-Explorer. Wenn Sie die PYPROJ-Datei an einen anderen Speicherort verschieben möchten, wählen Sie zunächst die Datei im Projektmappen-Explorer und dann auf der Symbolleiste Datei>Speichern unter aus. Damit werden Dateiverweise im Projekt aktualisiert, aber keine Codedateien verschoben.

  8. Wenn Sie eine andere Startdatei festlegen möchten, suchen Sie die Datei im Projektmappen-Explorer, klicken Sie mit der rechten Maustaste auf die Datei, und wählen Sie anschließend Als Startdatei festlegen aus.

Verknüpfte Dateien

Verknüpfte Dateien sind Dateien, die in ein Projekt eingebunden sind, sich aber in der Regel außerhalb der Projektordner der Anwendung befinden. Diese Dateien werden im Projektmappen-Explorer wie normale Dateien überlagert mit einem Verknüpfungssymbol angezeigt:

Verknüpfte Dateien werden in der .pyproj-Datei mit dem <Compile Include="...">-Element angegeben. Verknüpfte Dateien sind implizit, wenn Sie einen relativen Pfad außerhalb der Verzeichnisstruktur nutzen. Wenn die Dateien Pfade innerhalb des Projektmappen-Explorers verwenden, sind die verknüpften Dateien explizit. Das folgende Beispiel zeigt explizit verknüpfte Dateien:

<Compile Include="..\test2.py">
    <Link>MyProject\test2.py</Link>
</Compile>

Verknüpfte Dateien werden unter folgenden Bedingungen ignoriert:

  • Die verknüpfte Datei enthält Link-Metadaten, und der im Include-Attribut angegebene Pfad befindet sich im Projektverzeichnis.
  • Die verknüpfte Datei dupliziert eine Datei, die in der Projekthierarchie vorhanden ist.
  • Die verknüpfte Datei enthält Link-Metadaten, und der Link-Pfad ist ein relativer Pfad außerhalb der Projekthierarchie.
  • Der Linkpfad ist ein Stammpfad.

Arbeiten mit verknüpften Dateien

Klicken Sie zum Hinzufügen eines vorhandenen Elements als Link mit der rechten Maustaste auf den Ordner im Projekt, dem Sie die Datei hinzufügen möchten, und wählen Sie Hinzufügen>Vorhandenes Element aus. Wählen Sie im Dialogfeld eine Datei und dann Hinzufügen>Als Link hinzufügen aus. Wenn keine in Konflikt stehenden Dateien vorhanden sind, wird mit diesem Befehl ein Link im ausgewählten Ordner erstellt. Allerdings wird der Link nicht hinzugefügt, wenn eine Datei mit dem gleichen Namen vorhanden ist, oder ein Link zu dieser Datei bereits im Projekt vorhanden ist.

Wenn Sie versuchen, eine Verknüpfung zu einer Datei zu erstellen, die bereits im Projektordner vorhanden ist, wird die Datei als normale Datei und nicht als Link hinzugefügt. Um eine Datei in einen Link zu konvertieren, wählen Sie Datei>Speichern unter aus, um die Datei an einem Speicherort außerhalb der Projekthierarchie zu speichern. Visual Studio konvertiert sie automatisch in einen Link. Auf ähnliche Weise kann ein Link mit Datei>Speichern unter zurückkonvertiert werden, um die Datei an beliebiger Stelle in der Projekthierarchie zu speichern.

Wenn Sie eine verknüpfte Datei im Projektmappen-Explorer verschieben, wird der Link verschoben, aber die eigentliche Datei ist nicht betroffen. Ebenso wird beim Löschen eines Links nur der Link entfernt, ohne Auswirkung auf die Datei.

Verknüpfte Dateien können nicht umbenannt werden.

References

Visual Studio-Projekte unterstützen das Hinzufügen von Verweisen auf Projekte und Erweiterungen, die im Projektmappen-Explorer unter dem Knoten Verweise angezeigt werden:

Screenshot, der zeigt, wie Sie eine Erweiterungsreferenz in Python-Projekten in Visual Studio hinzufügen.

Erweiterungsverweise geben in der Regel Abhängigkeiten zwischen Projekten an und dienen zum Bereitstellen von IntelliSense beim Entwurf oder der Verknüpfung bei der Kompilierung. Python-Projekte verwenden Verweise ähnlich, aber aufgrund der Dynamik von Python werden sie in erster Linie zur Entwurfszeit verwendet, um verbessertes IntelliSense bereitzustellen. Sie können auch für die Bereitstellung in Microsoft Azure verwendet werden, um weitere Abhängigkeiten zu installieren.

Arbeiten mit Erweiterungsmodulen

Ein Verweis auf eine .pyd-Datei aktiviert IntelliSense für das generierte Modul. Visual Studio lädt die Datei .pyd in den Python-Interpreter und prüft Typen und Funktionen. Visual Studio versucht auch, die Dokumentzeichenfolgen für Funktionen zu analysieren, um Signaturhilfe zu bieten.

Wenn zu einem beliebigen Zeitpunkt das Erweiterungsmodul auf dem Datenträger aktualisiert wird, analysiert Visual Studio das Modul im Hintergrund neu. Diese Aktion hat keine Auswirkung auf das Laufzeitverhalten, aber einige Vervollständigungen stehen nicht zur Verfügung, bis die Analyse abgeschlossen ist.

Sie müssen dem Ordner, der das Modul enthält, möglicherweise auch einen Suchpfad hinzufügen.

Arbeiten mit .NET-Projekten

Bei der Arbeit mit IronPython können Sie .NET-Assemblys Verweise hinzufügen, um IntelliSense zu aktivieren. Für .NET-Projekte in Ihrer Projektmappe klicken Sie mit der rechten Maustaste auf den Knoten Verweise in Ihrem Python-Projekt und dann auf Verweis hinzufügen. Wählen Sie im Dialogfeld die Registerkarte Projekte aus, und navigieren Sie zum gewünschten Projekt. Wählen Sie für DLLs, die Sie separat heruntergeladen haben, stattdessen die Registerkarte Durchsuchen, und navigieren Sie zu der gewünschten DLL.

Da Verweise in IronPython nicht verfügbar sind, bis ein Aufruf der clr.AddReference('<AssemblyName>')-Methode erfolgt, müssen Sie der Assembly auch einen entsprechenden clr.AddReferenceMethodenaufruf hinzufügen. Dieser Aufruf wird in der Regel am Anfang des Codes hinzugefügt. Beispielsweise enthält der von der Projektvorlage für die IronPython-Windows Forms-Anwendung (in Visual Studio 2019 verfügbar) in Visual Studio erstellte Code zwei Aufrufe am Anfang der Datei:

import clr
clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')

from System.Drawing import *
from System.Windows.Forms import *

# Other code omitted

Arbeiten mit Webplattform-Installer-Projekten

Sie können Webplattform-Installer-Projekten (WebPI) Verweise für die Bereitstellung in Microsoft Azure Cloud Services hinzufügen, wo Sie weitere Komponenten über den WebPI-Feed installieren können. Standardmäßig ist der angezeigte Feed Python-spezifisch und enthält Django, CPython und andere Kernkomponenten. Sie können auch Ihre eigenen Feeds auswählen, wie in der folgenden Abbildung dargestellt. Wenn Sie in Microsoft Azure veröffentlichen, installiert eine Setupaufgabe alle Produkte, auf die verwiesen wird.

Wichtig

Web PI-Projekte sind in Visual Studio 2017 oder Visual Studio 2019 nicht verfügbar.

Screenshot, der die Webplattform-Installer (Web Platform Installer, WebPI)-Referenzen in Visual Studio zeigt.