在 Web 上執行和除錯 Python
我們很高興地宣佈對在 Web 上執行 Python 程式碼提供 實驗性 支援。要試用,請從 Marketplace 安裝最新的預釋出版本 Experimental - Python for the Web 擴充套件。這項工作基於 WASM in Python,目前正在開發中。要了解更多關於它的工作原理以及正在進行的進展,您可以閱讀 將 Python 編譯為 WebAssembly (WASM)。
先決條件
使用該擴充套件需要滿足以下先決條件
- 您需要安裝 GitHub Repositories 擴充套件。
- 您需要透過 GitHub 進行身份驗證。
- 您需要使用支援 跨域隔離 的瀏覽器。該擴充套件已在 Microsoft Edge 和 Google Chrome 瀏覽器中進行過測試。
- 您需要使用 VS Code for the Web 的 insider 版本(例如
https://insiders.vscode.dev/) - 您的原始碼必須託管在您的本地檔案系統或透過 GitHub Repositories 擴充套件訪問的 GitHub 儲存庫中。
- 啟動 VS Code for the Web 時,您需要在 URL 末尾新增以下查詢引數:
?vscode-coi=。
執行 Hello World
下圖顯示了在瀏覽器中執行一個簡單的 Python 程式。該程式包含儲存在本地檔案系統中的兩個檔案 app.py 和 hello.py。

啟動 REPL
該擴充套件附帶一個整合的 Python REPL。要啟用它,請執行命令 Python WASM: Start REPL。

除錯
該擴充套件支援在 Web 上除錯 Python 檔案,它使用的 UI 與 VS Code Desktop 除錯 相同。目前支援的功能包括:
- 設定斷點
- 進入和退出函式
- 跨模組除錯
- 在除錯控制檯中評估變數
- 在整合終端中除錯程式
下圖顯示了一個活動的除錯會話。檔案直接託管在 GitHub 上,位於此 示例儲存庫 中。

建立您自己的 Python 環境
該擴充套件使用基於 CPython WebAssembly 構建 的預配置 Python 環境。使用的構建是 Python-3.11.0-wasm32-wasi-16.zip。
您可以按照以下步驟建立自己的 Python 環境,包括源輪式 Python 包:
-
建立一個新的 GitHub 儲存庫。
-
從 cpython-wasm-test/releases 下載 wasm-wasi-16 構建,並將其展開到儲存庫的根目錄。
-
要新增源輪式包,請執行以下操作:
- 在根目錄下建立一個
site-packages資料夾。 - 使用以下命令安裝包
pip install my_package --target ./site-packages。請注意,您的作業系統需要安裝 Python,包括 pip。
- 在根目錄下建立一個
-
提交更改。
-
更改
python.wasm.runtime設定,使其指向您的 GitHub 儲存庫。例如:{ "python.wasm.runtime": "https://github.com/dbaeumer/python-3.11.0" }
限制
Python for the Web 支援並不提供在本地計算機上執行原始碼時可用的所有功能。Python 直譯器中的主要限制包括:
- 無套接字支援。
- 無執行緒支援。因此,也無非同步支援。
- 無 pip 支援。
- 不支援原生 Python 模組。
致謝
這項工作離不開 Python 社群的支援,他們正在構建和維護 CPython 所需的 WASM 檔案。
反饋
如果您在使用 Python for the Web 擴充套件時遇到問題,可以在 vscode-python-web-wasm 儲存庫中提交問題。