Python im Web ausführen und debuggen
Wir freuen uns, experimentelle Unterstützung für die Ausführung von Python-Code im Web ankündigen zu können. Um dies auszuprobieren, installieren Sie die neueste Vorabversion der Experimental - Python for the Web-Erweiterung aus dem Marketplace. Diese Arbeit basiert auf WASM in Python, das sich derzeit in der Entwicklung befindet. Um mehr darüber zu erfahren, wie es funktioniert und welche Fortschritte erzielt werden, können Sie Compiling Python to WebAssembly (WASM) lesen.
Voraussetzungen
Die folgenden Voraussetzungen sind erforderlich, um die Erweiterung verwenden zu können
- Sie müssen die GitHub Repositories-Erweiterung installiert haben.
- Sie müssen sich bei GitHub authentifizieren.
- Sie müssen einen Browser verwenden, der Cross-Origin Isolation unterstützt. Die Erweiterung wurde mit den Browsern Microsoft Edge und Google Chrome getestet.
- Sie müssen die Insider-Version von VS Code for the Web verwenden (z. B.
https://insiders.vscode.dev/) - Ihr Quellcode muss entweder im lokalen Dateisystem oder in einem GitHub-Repository gehostet werden, auf das über die GitHub Repositories-Erweiterung zugegriffen wird.
- Beim Start von VS Code for the Web müssen Sie den folgenden Query-Parameter am Ende der URL hinzufügen:
?vscode-coi=.
Hello World ausführen
Der folgende Screenshot zeigt die Ausführung eines einfachen Python-Programms im Browser. Das Programm besteht aus zwei Dateien app.py und hello.py, die im lokalen Dateisystem gespeichert sind.

Eine REPL starten
Die Erweiterung verfügt über eine integrierte Python REPL. Um sie zu aktivieren, führen Sie den Befehl Python WASM: Start REPL aus.

Debugging
Es gibt Unterstützung für das Debuggen von Python-Dateien im Web, und die Benutzeroberfläche ist dieselbe wie beim Debuggen auf dem Desktop von VS Code. Die derzeit unterstützten Funktionen sind
- Haltepunkte setzen
- Schrittweise in Funktionen hinein- und herausspringen
- Debuggen über Module hinweg
- Variablen in der Debug-Konsole auswerten
- Das Programm im integrierten Terminal debuggen
Der folgende Screenshot zeigt eine aktive Debugging-Sitzung. Die Dateien werden direkt auf GitHub in diesem Beispiel-Repository gehostet.

Ihre eigene Python-Umgebung erstellen
Die Erweiterung verwendet eine vorkonfigurierte Python-Umgebung, die auf den CPython WebAssembly-Builds basiert. Der verwendete Build ist Python-3.11.0-wasm32-wasi-16.zip.
Sie können Ihre eigene Python-Umgebung erstellen, einschließlich Quellcode-Wheel-Python-Paketen, indem Sie die folgenden Schritte ausführen
-
Erstellen Sie ein neues GitHub-Repository.
-
Laden Sie einen wasm-wasi-16-Build von cpython-wasm-test/releases herunter und entpacken Sie ihn in das Stammverzeichnis des Repositorys.
-
Um Quellcode-Wheel-Pakete hinzuzufügen, gehen Sie wie folgt vor
- Erstellen Sie einen
site-packages-Ordner im Stammverzeichnis. - Installieren Sie das Paket mit dem folgenden Befehl
pip install my_package --target ./site-packages. Beachten Sie, dass Sie eine Python-Installation auf Ihrem Betriebssystem einschließlich pip haben müssen.
- Erstellen Sie einen
-
Committen Sie die Änderungen.
-
Ändern Sie die Einstellung
python.wasm.runtimeso, dass sie auf Ihr GitHub-Repository verweist. Zum Beispiel{ "python.wasm.runtime": "https://github.com/dbaeumer/python-3.11.0" }
Einschränkungen
Die Unterstützung von Python für das Web bietet nicht alle Funktionen, die beim Ausführen von Quellcode auf Ihrem lokalen Rechner verfügbar sind. Die Haupteinschränkungen des Python-Interpreters sind
- Keine Socket-Unterstützung.
- Keine Thread-Unterstützung. Infolgedessen gibt es keine Async-Unterstützung.
- Keine Pip-Unterstützung.
- Keine Unterstützung für native Python-Module.
Danksagung
Die Arbeit wäre ohne die Unterstützung der Python-Community, die die notwendigen WASM-Dateien von CPython erstellt und pflegt, nicht möglich gewesen.
Feedback
Wenn Sie Probleme bei der Verwendung der Python-for-the-Web-Erweiterung haben, können Sie Probleme im Repository vscode-python-web-wasm melden.