參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

在 Web 中執行和除錯 Python

我們很高興地宣佈,我們為在 Web 上執行 Python 程式碼提供了實驗性支援。要試用此功能,請從 Marketplace 安裝最新預釋出版本的 Experimental - Python for the Web 擴充套件。這項工作基於目前仍在開發中的 Python WASM。要了解更多關於其工作原理和當前進展的資訊,您可以閱讀 將 Python 編譯為 WebAssembly (WASM)

先決條件

使用此擴充套件需要滿足以下先決條件:

  • 您需要安裝 GitHub Repositories 擴充套件。
  • 您需要透過 GitHub 進行身份驗證。
  • 您需要使用支援跨域隔離的瀏覽器。該擴充套件已在 Microsoft Edge 和 Google Chrome 瀏覽器上進行過測試。
  • 您需要使用 Insider 版本的 VS Code for the Web (例如 https://insiders.vscode.dev/)。
  • 您的原始碼必須託管在本地檔案系統,或者透過 GitHub Repositories 擴充套件訪問的 GitHub 倉庫中。
  • 啟動 VS Code for the Web 時,您需要在 URL 的末尾新增以下查詢引數:?vscode-coi=

執行 Hello World

下面的截圖展示了在瀏覽器中執行一個簡單的 Python 程式。該程式由兩個檔案 app.pyhello.py 組成,儲存在本地檔案系統上。

Execution of Python code stored on a local disk

啟動 REPL

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

Start Python Repl

除錯

此擴充套件支援在 Web 上除錯 Python 檔案,並使用與 VS Code 桌面版除錯相同的使用者介面。目前支援的功能有:

  • 設定斷點
  • 單步進入和跳出函式
  • 跨模組除錯
  • 在除錯控制檯中評估變數
  • 在整合終端中除錯程式

下面的截圖展示了一個活動的除錯會話。這些檔案直接託管在這個示例倉庫的 GitHub 上。

Debugging a Python program

建立您自己的 Python 環境

該擴充套件使用基於 CPython WebAssembly 構建版本的預配置 Python 環境。所使用的構建版本是 Python-3.11.0-wasm32-wasi-16.zip

您可以按照以下步驟建立自己的 Python 環境,包括原始碼 wheel 格式的 Python 包:

  • 建立一個新的 GitHub 倉庫。

  • cpython-wasm-test/releases 下載一個 wasm-wasi-16 構建版本,並將其解壓到倉庫的根目錄。

  • 要新增原始碼 wheel 格式的包,請執行以下操作:

    • 在根目錄中建立一個 site-packages 資料夾。
    • 使用以下命令安裝包:pip install my_package --target ./site-packages。請注意,您的作業系統中需要有包含 pip 的 Python 安裝。
  • 提交更改。

  • 更改 python.wasm.runtime 設定,使其指向您的 GitHub 倉庫。例如:

    {
      "python.wasm.runtime": "https://github.com/dbaeumer/python-3.11.0"
    }
    

限制

Python for the Web 支援並未提供在本地機器上執行原始碼時可用的所有功能。Python 直譯器的主要限制有:

  • 不支援套接字 (socket)。
  • 不支援執行緒。因此,也不支援非同步操作。
  • 不支援 pip。
  • 不支援原生的 Python 模組。

致謝

沒有 Python 社群構建和維護必要的 CPython WASM 檔案的支援,這項工作是不可能完成的。

反饋

如果您在使用 Python for the Web 擴充套件時遇到問題,可以在 vscode-python-web-wasm 倉庫中提交問題。