是否可以使用 pyscript 在浏览器上 运行 使用 pygame 制作的游戏?

Is it possible to run game made with pygame on browser using pyscript?

我使用 pygame 制作了一个小型 space 入侵者游戏,我想知道我是否可以使用 pyscript 在浏览器上玩它。这可能吗?我必须重写所有内容吗?

不,目前 PyScript 不支持 Pygame。我不确定找出 支持哪些包的最佳方法是什么,但我设法拼凑了以下内容:

  1. PyScript 使用 Pyodide 加载包,因此只有 Pyodide 支持的包才能在 PyScript 中加载。这意味着要么使用 Pyodide 构建的包,要么在 PyPI 或其他 URL 上提供带轮子的纯 Python 包。
  2. Pygame is not yet supported by Pyodide.

您可以使用以下测试脚本查看是否支持某个包:

<html>
    <head>
      <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
      <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
      <py-env>
        - pygame
      </py-env>
    </head>

  <body>
    <h1>PyScript import test script</h1>
    <py-script>
import pygame

    </py-script>
  </body>
</html>

这基本上只是一个“尝试一下,看看会发生什么”的脚本,如果不支持包,它将在控制台中抛出错误。您将看到的错误是

ValueError: Couldn't find a pure Python 3 wheel for 'pygame'. You can use micropip.install(..., keep_going=True) to get a list of all packages with missing wheels.