Python-Code mit Visual Studio 2017 debuggen? Part 1 – Die Installation

Bisher war es ziemlich kompliziert, Python-Code unter Windows zu entwickeln oder zu debuggen. Ausgerechnet Microsoft hat sich in der Version 15.6 von Visual Studio 2017 entschlossen, Python ebenfalls als Programmiersprache zu unterstützen. Wie das am Beispiel von MusicBrainz Picard-Code funktioniert, zeigen diese Schritte:

1.) Man installiert Visual Studio 2017 (VS) mit den sogenannten Arbeitsauslastungen namens «Enwicklung für die universelle Windows-Plattform» und «Desktop-Entwicklung mit C++».  Danach startet man VS das erste mal. Wer nur mal kurz testen will, braucht keinen Produkt-Key und keine MS-Anmeldung. Die Version läuft damit 30 Test-Tage.

2.) Relativ schnell erscheint in der rechten oberen Ecke eine schwarze Flagge auf orangem Grund:
3.) Nach dem Aktualisieren auf die neue Version 15.6 steht dann erstmals unter «Web und Cloud» auch die Möglichkeit «Python-Entwicklung» zur Verfügung. Praktischerweise sollte man hier auch gleich die Variante «Python 3, 32bit (3.6.3)» aktivieren und mitinstallieren:

4.) Für unser Beispiel laden wir nun den Python-Source-Code von MusicBrainz Picard (einem ID3-Tagging-Programm) herunter, entpacken den kompletten Code samt Unterverzeichnissen aus dem ZIP-File und kopieren alles z.B. nach
C:\Users\UserXYZ\Documents\Visual Studio 2017\Projects\picard-2.0.0dev6

5.) Für dieses Projekt speziell ist, dass wir die lokalen Übersetzungen für das GUI manuell mit GetText vorbereiten müssen. Das funktioniert aber nicht mit der von den Entwicklern angegebenen GnuWin32-Variante und leider auch mit keiner der später ladbaren PIP-Bibliotheken. Am einfachsten lädt man deshalb die statische gettext0.19.8.1-iconv1.15-static-64.exe herunter und installiert sie ausserhalb von VS. Hier steht, wie man die Übersetzungen vorbereitet.

6.) Danach startet man VS. Die Entwickler von Picard bieten keine Projekt-Datei für VS an. Deshalb wählt man über Datei -> Neu -> Projekt -> Python -> «Aus vorhandenem Python-Code» und verwendet den Assistenten:
  
wählt also das vorbereitete Python-Code-Verzeichnis aus (und für dieses Projekt gibt man zusätzlich den Pfad zum \bin-Verzeichnis der gettext-Installation an). Im zweiten Screen wählt man die 32-bit Variante, weil z.B. die später erklärte discid-Bibliothek nicht 64bit-tauglich ist. Ebenfalls gibt man die Datei tagger.py als Startdatei an. Das wird zwar ignoriert, ist aber vermutlich ein Fehler in diesem Asssistenten.

7.) VS lädt damit das gesamte Projekt – in den für .NET-Entwickler gewohnten – Projektmappenexplorer.
Der Paket-Manager für .NET heisst NuGet. Für Python nennt er sich PIP. PIP findet man in VS unter Extras -> Python -> Python-Umgebungen:

8.) Unser Projekt Picard benötigt die folgenden PIP-Pakete: PyQt5, mutagen und discid. Diese Pakete installiert man im Tab «Python- Umgebungen» durch einen Klick auf den Begriff «Übersicht», die Auswahl von «Pakete (PyPI)» und eintippen der Paketnamen.

Sobald man den Paketnamen mit der zusätzlichen Versionsnummer und “…installieren” sieht, klickt man den richtigen Eintrag an und wartet die Installation ab. Den Fortschritt und Erfolg sieht man standardmässig unten links im «Ausgabefenster». Wählt man wie erwähnt unter Python-Umgebungen «Python 3.6 (32bit)»-Variante, funktioniert das einwandfrei.

8b) Unter 64bit verweigert das Paket discid die Installation. Speziell an discid ist auch, dass man selbst in der 32bit-Variante die discid.dll manuell in ein Verzeichnis kopieren muss, welches in der PATH-Umgebungsvariable für VS zugänglich ist. Das wäre z.B. in C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_86.

9.) Im Projektmappen-Explorer muss man die Datei tagger.py mit der rechten Maustaste auswählen und «Als Startdatei festlegen» (obwohl man das im Assistenten ja schon angegeben hat). Nun speichert man sicherheitshalber das ganze Projekt und erstellt damit die *.sln-Datei.

10.) Nun endlich können wir das Projekt wie gewohnt mit F5 starten. Was nun ungewohntes passiert, beschreibe ich im nächsten Beitrag.

Rate this post

Schreibe einen Kommentar