現已釋出!閱讀關於 11 月新增功能和修復的內容。

在 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.pyhello.py

Execution of Python code stored on a local disk

啟動 REPL

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

Start Python Repl

除錯

該擴充套件支援在 Web 上除錯 Python 檔案,它使用的 UI 與 VS Code Desktop 除錯 相同。目前支援的功能包括:

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

下圖顯示了一個活動的除錯會話。檔案直接託管在 GitHub 上,位於此 示例儲存庫 中。

Debugging a Python program

建立您自己的 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 儲存庫中提交問題。

© . This site is unofficial and not affiliated with Microsoft.