이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

웹에서 Python 실행 및 디버그

웹에서 Python 코드를 실행하는 실험적 지원을 발표하게 되어 기쁩니다. 이를 시도해 보려면 Marketplace에서 Experimental - Python for the Web 확장 프로그램의 최신 미리 보기 버전을 설치하세요. 이 작업은 현재 개발 중인 Python의 WASM을 기반으로 합니다. 작동 방식과 진행 상황에 대해 자세히 알아보려면 Python을 WebAssembly(WASM)로 컴파일을 읽어보세요.

전제 조건

확장 프로그램을 사용하려면 다음 전제 조건이 필요합니다.

  • GitHub Repositories 확장 프로그램이 설치되어 있어야 합니다.
  • GitHub에 인증해야 합니다.
  • 교차 출처 격리를 지원하는 브라우저를 사용해야 합니다. 이 확장 프로그램은 Microsoft Edge 및 Google Chrome 브라우저에서 테스트되었습니다.
  • 웹용 VS Code의 인사이더 버전을 사용해야 합니다 (예: https://insiders.vscode.dev/).
  • 소스 코드는 로컬 파일 시스템 또는 GitHub Repositories 확장 프로그램을 통해 액세스되는 GitHub 리포지토리에 호스팅되어야 합니다.
  • 웹용 VS Code를 시작할 때 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

디버깅

웹에서 Python 파일을 디버깅하기 위한 지원이 있으며 VS Code 데스크톱 디버깅과 동일한 UI를 사용합니다. 현재 지원되는 기능은 다음과 같습니다.

  • 중단점 설정
  • 함수 안팎으로 단계별 실행
  • 모듈 간 디버깅
  • 디버그 콘솔에서 변수 평가
  • 통합 터미널에서 프로그램 디버그

아래 스크린샷은 활성 디버그 세션을 보여줍니다. 파일은 이 샘플 리포지토리의 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를 사용하여 패키지를 설치합니다. 운영 체제에 pip를 포함한 Python 설치가 필요합니다.
  • 변경 사항을 커밋합니다.

  • python.wasm.runtime 설정을 GitHub 리포지토리를 가리키도록 변경합니다. 예:

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

제한 사항

웹용 Python 지원은 로컬 컴퓨터에서 소스 코드를 실행할 때 사용할 수 있는 모든 기능을 제공하지는 않습니다. Python 인터프리터의 주요 제한 사항은 다음과 같습니다.

  • 소켓 지원 없음.
  • 스레드 지원 없음. 결과적으로 비동기 지원도 없습니다.
  • pip 지원 없음.
  • 기본 Python 모듈에 대한 지원 없음.

감사의 말씀

이 작업은 CPython의 필요한 WASM 파일을 구축하고 유지 관리하는 Python 커뮤니티의 지원 없이는 불가능했을 것입니다.

피드백

웹용 Python 확장 프로그램을 사용하는 동안 문제가 발생하는 경우 vscode-python-web-wasm 리포지토리에 이슈를 등록할 수 있습니다.

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