macos - 让 pygame 在 Macos 上显示除空白屏幕以外的任何内容的问题

标签 macos python-2.7 pygame

我最近买了一台新的 macbook,我一直在无休止地尝试获得 pygame工作,但还没有成功。我变得非常绝望,我真的可以使用一些帮助。

我已经安装 pygame 1.9.4即使我在运行 pygame 时没有收到任何错误消息代码,除了空白屏幕外,它不会显示任何内容。我正在使用以下代码对其进行测试:

import pygame
pygame.init()

screen = pygame.display.set_mode((800,600))

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            quit()

    screen.fill((255,0,0))
    pygame.display.update()

pygame.quit()

在我的旧 macbook 上,测试代码按预期给了我一个红色的屏幕。两台 macbook 都在运行 python 2.7.10 .

有谁知道我做错了什么?我想我安装了 pygame就像我在旧 macbook 上所做的一样,唯一的区别似乎是操作系统。

编辑1:
我在 Sublime Text 中编写脚本并在终端中运行该程序。
Screenshot

编辑2:
通过将我的操作系统降级到 macOS High Sierra,我让 pygame 再次工作。

最佳答案

已测试并适用于 macOS 10.15 Catalina , Python 3.7.5 , PyGame 2.0.0 (在撰写本文时预发布)和 PyGame 1.9.6 (在撰写本文时稳定)。

最初,您需要决定是想要稳定版本还是预发布(不稳定)。如果您决定使用最新的(可能是预发布/不稳定的),那么只需忽略第一步(“1. 查找最新的稳定版本”)并使用 master在第二步的第 4 步分支(“2. 从源代码安装 PyGame”)。

1. 找到最新的稳定发布版本

转到 PyGame 的 GitHub 页面 here :

enter image description here

正如您在撰写本文时所看到的,最新的稳定版本是 1.9.6所以我们保留这个标签名称以备后用。

2. 在 macOS 上从源码安装 PyGame

  • 安装一些依赖 brew install sdl2 sdl2_gfx sdl2_image sdl2_mixer sdl2_net sdl2_ttf .这需要 homebrew .
  • 转至 site-packages :
  • 对于 虚拟环境转至 cd ~/.virtualenvs/myvirtualenv/lib/python3.X/site-packages哪里~/.virtualenvs/myvirtualenv是您的虚拟环境的路径和 python3.X是你的 Python 版本。
  • 对于 全系统安装去/usr/local/lib/python3.X/site-packages哪里python3.X是你的 Python 版本。
  • 删除任何以前的 pygame,pip uninstall pygame (如果 pygame 目录存在于 site-packages 中,则将其删除: rm -rf pygame* )
  • 从 GitHub 克隆 PyGame:
  • git clone https://github.com/pygame/pygame.git最新的(可能不是稳定版本)。
  • git clone -b 1.9.6 https://github.com/pygame/pygame.git --single-branch对于最新的(1.9.6 是最新稳定版本的标记名称,在撰写本文时,请参阅“在上面查找最新的稳定版本”)
  • 进入新克隆pygame目录:cd pygame .
  • 运行 python setup.py --config --auto --sdl2 .
  • 如果您在使用此命令时遇到问题,下面的一些用户提到单个连字符对他们有用,因此请尝试:python setup.py -config -auto -sdl2 .
  • 如果您遇到有关 Python2/3 的任何问题并且您的目标是 Python3,请尝试更改 python setup.py --config --auto --sdl2python3 setup.py --config --auto --sdl2 .
  • 运行 python setup.py install (这将需要一段时间)。
  • 如果您遇到有关 Python2/3 的任何问题并且您的目标是 Python3,请尝试更改 python setup.py --config --auto --sdl2python3 setup.py --config --auto --sdl2 .

  • 现在 PyGame 应该可以在 macOS 上按预期工作了。

    关于macos - 让 pygame 在 Macos 上显示除空白屏幕以外的任何内容的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54302089/

    相关文章:

    python-2.7 - 为什么我在尝试升级 pip 后收到 DistributionNotFound 错误?

    python-2.7 - 如何从同一应用程序项目中的 python2.7 微服务访问 google app engine ndb 数据存储

    python - 获取文本文件中的特定行并将其传递给数组

    python - Pygame - 让 Sprite 朝它所面对的方向移动

    python - 如何在 Pygame 中使用 Sprite Collide

    macOS 命令无法访问 a.jar

    c++ - 使用 RStudio 的 R 和 C++

    java - dyld : Symbol not found: _JNI_CreateJavaVM

    python-3.x - 如何将 direnv 与 python venv 一起使用?

    python - 如何将控制台插入 pyGame 窗口?