pygame-community/pygame-ce
GitHub: pygame-community/pygame-ce
pygame-ce 是 pygame 的社区版分支,基于 SDL 提供 Python 跨平台多媒体与游戏开发能力,以更快的发布节奏和民主治理模式持续改进原项目。
Stars: 1546 | Forks: 247
.. image:: https://raw.githubusercontent.com/pygame-community/pygame-ce/main/docs/reST/_static/pygame_ce_logo.svg
:width: 800
:alt: pygame
:target: https://pyga.me/
|DocsStatus|
|PyPiVersion| |PyPiLicense|
|Python3| |GithubCommits| |BlackFormatBadge|
## |DiscordBadge|
Pygame_ 是一个免费的开源跨平台库,用于使用 Python 开发视频游戏等多媒体应用程序。
它使用 `Simple DirectMedia Layer library`_ 和其他几个流行的库来抽象最常用的功能,使编写这些程序成为一项更直观的任务。
本发行版被称为 **'pygame - Community Edition'**(简称 'pygame-ce')。
它是原 pygame 项目的前核心开发者创建的一个分支,由于遇到了无法克服的挑战,阻碍了他们在原项目上的继续开发,因此创建了这个分支。
新发行版旨在提供更频繁的发布、持续的 bug 修复和增强功能,以及更民主的治理模式。
## 安装
要安装 pygame-ce,首先请确保你已安装 Python(和 pip),并且它们可用在你的 PATH 中。
然后,在你的终端或命令提示符中运行以下命令:
::
pip install pygame-ce
请注意,在某些平台上,你可能需要使用 ``pip3`` 而不是 ``pip``。
### Linux 注意事项:“Breaking System Packages” 错误
在某些 Linux 发行版(如 Ubuntu 或 Debian)上,使用 ``pip`` 安装 Python 包可能会触发类似以下的消息:
::
error: externally-managed-environment
This environment is externally managed when system packages are installed.
这意味着你的系统 Python 是由操作系统管理的,全局使用 ``pip3`` 可能会干扰系统包。
## 推荐解决方案
1. 使用 ``venv``(虚拟环境):
你可以创建一个虚拟环境并在其中安装 pygame-ce。
这样你仍然可以使用系统 Python,但会为安装的包创建一个独立的环境,从而使它们不会与系统包发生冲突或破坏系统包。
.. code-block:: bash
python3 -m venv venv # create a venv named 'venv'
source venv/bin/activate # activate venv
pip install pygame-ce # install packages in venv
2. 使用 ``pyenv``(用户级 Python 管理):
`pyenv `_ 允许你在用户级别安装和管理自己的 Python 版本,而无需触及系统 Python。
另外,你还可以并行安装和使用多个 Python 版本。
3. 使用 ``uv``(快速现代包安装器):
`uv `_ 是一个现代、快速的 Python 包和环境管理器,可以作为 ``venv`` 和 ``pyenv`` 的替代品。
## 帮助
如果你刚刚开始使用 pygame,你应该能够很快上手。Pygame 提供了许多教程和介绍。整个库还有完整的参考文档。请在 `docs page`_ 上浏览文档。你也可以在终端中运行 ``python -m pygame.docs`` 在本地浏览文档。如果在本地找不到文档,它将改为启动在线网站。
在线文档与 github 上 pygame 的开发版本保持同步。这可能会比你正在使用的 pygame 版本稍微新一些。要升级到最新的正式版本,请在你的终端中运行 ``pip install pygame-ce --upgrade``。
最棒的是,examples 目录中有许多可运行的小程序,可以让你立即开始尝试代码。
## 从源码构建
如果你想使用目前正在开发的功能,或者想为 pygame-ce 做贡献,你需要从其源代码在本地构建 pygame-ce,而不是通过 pip 安装。
从源码安装是相当自动化的。大部分工作将涉及编译和安装所有的 pygame 依赖项。完成这些后,运行 ``setup.py`` 脚本,它将尝试自动配置、构建和安装 pygame。
关于安装和编译的更多信息可以在 `Compilation wiki page`_ 上找到。
## 依赖项
显然,Pygame 强依赖于 SDL 和 Python。它还链接并嵌入了几个其他小型库。font 模块依赖于 SDL_ttf,而后者依赖于 freetype。mixer(和 mixer.music)模块依赖于 SDL_mixer。image 模块依赖于 SDL_image。Transform.rotozoom 具有内嵌版本的 SDL_rotozoom,而 gfxdraw 具有内嵌版本的 SDL_gfx。
依赖项版本:
+----------+------------------------+
| CPython | >= 3.10 (Or use PyPy3) |
+----------+------------------------+
| SDL | >= 2.0.14 |
+----------+------------------------+
| SDL_mixer| >= 2.0.4 |
+----------+------------------------+
| SDL_image| >= 2.0.4 |
+----------+------------------------+
| SDL_ttf | >= 2.0.15 |
+----------+------------------------+
## 许可证
**许可证标识:** LGPL-2.1-or-later
本库基于 `GNU LGPL version 2.1`_ 分发,该协议可在 ``docs/LGPL.txt`` 文件中找到。我们保留在未来版本中将本库置于不同许可证下的权利。
这基本上意味着你可以在任何你想要的项目中使用 pygame,但如果你对 pygame 本身进行了任何更改或添加,则必须使用兼容的许可证发布(最好提交回 pygame-ce 项目)。闭源和商业游戏也是可以的。
``examples`` 子目录中的程序位于公共领域。有关依赖项的许可证,请参见 docs/licenses。
.. |PyPiVersion| image:: https://img.shields.io/pypi/v/pygame-ce.svg?v=1
:target: https://pypi.python.org/pypi/pygame-ce
.. |PyPiLicense| image:: https://img.shields.io/pypi/l/pygame-ce.svg?v=1
:target: https://pypi.python.org/pypi/pygame-ce
.. |Python3| image:: https://img.shields.io/badge/python-3-blue.svg?v=1
.. |GithubCommits| image:: https://img.shields.io/github/commits-since/pygame-community/pygame-ce/2.5.6.svg
:target: https://github.com/pygame-community/pygame-ce/compare/2.5.6...main
.. |DocsStatus| image:: https://img.shields.io/website?down_message=offline&label=docs&up_message=online&url=https%3A%2F%2Fpyga.me%2Fdocs%2F
:target: https://pyga.me/docs/
.. |BlackFormatBadge| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
.. |DiscordBadge| image:: https://discord.com/api/guilds/772505616680878080/widget.png
:target: https://pyga.me/discord
.. _Pygame: https://pyga.me
.. _Simple DirectMedia Layer library: https://www.libsdl.org
.. _Compilation wiki page: https://github.com/pygame-community/pygame-ce/wiki#compiling
.. _docs page: https://pyga.me/docs
.. _GNU LGPL version 2.1: https://www.gnu.org/copyleft/lesser.html
.. _Contribution Guidelines: https://github.com/pygame-community/pygame-ce/wiki/Contribution-guidelines
.. _Many Ways to Contribute: https://github.com/pygame-community/pygame-ce/wiki/Many-ways-to-contribute
.. _Opening A Pull Request: https://github.com/pygame-community/pygame-ce/wiki/Opening-a-pull-request
.. _Opening a Great Pull Request: https://github.com/pygame-community/pygame-ce/wiki/Opening-a-great-pull-request
.. _issue tracker: https://github.com/pygame-community/pygame-ce/issues
.. _label and link reported issues: https://github.com/pygame-community/pygame-ce/wiki/Labelling-&-linking-reported-issues
.. _Pygame Community Discord Server: https://pyga.me/discord
.. _wiki pages: https://github.com/pygame-community/pygame-ce/wiki
标签:Python, SDL, 多媒体, 客户端加密, 开源库, 搜索引擎爬虫, 无后门, 游戏开发, 逆向工具