使pygame在Macos Mojave上显示空白屏幕时出现问题

时间:2018-10-09 10:33:11

标签: 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编写脚本,然后在Terminal中运行程序。 Screenshot

编辑2: 通过将操作系统降级到macOS High Sierra,再次使pygame正常工作。

10 个答案:

答案 0 :(得分:18)

我也在macOS Catalina上遇到此问题。实际上,这是pygame的版本问题。首先,我安装了以下命令:

#!/usr/bin/env node console.log("Hello World!");

仅显示空白屏幕。但是后来,我使用以下命令更改了版本:

pip3 install pygame

使用此版本,我的问题已解决。运行良好。

答案 1 :(得分:10)

最新的编辑更新工作::从MacOS 10.14.1开始,如果您从python官方页面下载了Python 3.7.2的macOS x64官方安装程序包,然后pip3安装pygame即可。< / p>

MacOS出现问题。应该可以在SDL中进行修复。

pygame问题在这里:https://github.com/pygame/pygame/issues/555

自制问题在这里:https://github.com/Homebrew/homebrew-core/issues/33016

答案 2 :(得分:6)

我已经在 macOS 10.15 Catalina ,Python 3.7.5,PyGame 2.0.0(撰写本文时为预发行版)和PyGame 1.9.6(撰写本文时为稳定版)上对此进行了测试。

首先,转到Pygame的GitHub页面,查看最新的稳定版本。在撰写本文时,PyGame的最新稳定版本是1.9.6,而2.0.0是预发行版。如果您想要最新版本(不稳定/发布,请在下面进行克隆时使用master),但是如果您想要最新版本,请相应地更改分支。

以下是步骤:

  1. 安装一些依赖项brew install sdl2 sdl2_gfx sdl2_image sdl2_mixer sdl2_net sdl2_ttf。这需要homebrew
  2. 转到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版本。
  3. 删除以前的任何pygame,pip uninstall pygame(如果pygame中存在site-packages目录,然后将其删除:rm -rf pygame*
  4. 从GitHub复制pygame:
    • git clone https://github.com/pygame/pygame.git获取最新版本(可能不是稳定版本)。
    • git clone -b v1.9.6 https://github.com/pygame/pygame.git获取最新信息(稳定,根据您上面的检查,截至本文撰写时v1.9.6
  5. 进入pygame目录:cd pygame
  6. 运行python setup.py --config --auto --sdl2
  7. 运行python setup.py install(需要一段时间)。

现在PyGame应该可以在macOS上正常工作了。

答案 3 :(得分:5)

我使用macOS Catalina版本10.15.2,Python 3.7.2和pygame 1.9.6遇到了此问题。我已升级到Python 3.8.1,Pygame 2.0.0.dev6,它现在可以按预期运行。

答案 4 :(得分:3)

使用有效的解决方法进行编辑: 见帖子底部


在带有python3.7和MacOs Mojave的MacBook Pro(视网膜显示屏)上,我遇到了同样的问题。 为了简单起见,我用完全相同的代码和pygame 1.9.4进行了所有测试。

在(两台)Windows计算机上,该程序可以运行并在:上显示一个红色窗口:

  • python2.7
  • python3.6
  • python3.7

因此,这似乎不是Python版本的问题,我倾向于MacOS Mojave问题。

莫哈维(Mojave)引入了“暗模式”,该模式可自动为窗口着色。禁用黑暗模式时,出现黑屏。启用该功能后,我会看到黑屏。可能是MacOS用pygame控制屏幕的方式来控制屏幕显示和摆弄吗?这只是一种理论,但我不知道如何测试。


编辑: 我尝试了一个pygame程序,该程序记录并打印您单击的屏幕的位置。它确实在控制台中输出位置,但是它什么都不显示。 除了显示错误外,pygame似乎可以正常工作。


编辑: 目前,使用miniconda的Python版本和CogSci's pygame似乎可行。

答案 5 :(得分:3)

我尝试将旧的Macbook升级到Mojave操作系统,以查看pygame是否将停止运行,并且做到了!

我猜Mojave与pygame不兼容。

感谢您的帮助!

答案 6 :(得分:3)

我已经尝试了所有方法,但除此之外没有任何效果:

pip install git+https://github.com/pygame/pygame.git

这将安装pygame的技巧。它为我工作。试试看。

答案 7 :(得分:1)

我在以下环境中遇到了这个问题:Python 3.7,Mojave 10.14.2,Pygame 1.9.4

我发现降级到Python 3.6可以解决此问题

$ brew unlink python
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

应该可以解决此问题,如果遇到循环依赖问题,则应运行:

$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

https://apple.stackexchange.com/questions/329187/homebrew-rollback-from-python-3-7-to-python-3-6-5-x上的详细信息

答案 8 :(得分:0)

我遇到了同样的问题,将python降级到3.6.5可以正常工作。

> brew unlink python  brew install --ignore-dependencies
> https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
> brew switch python 3.6.5_1 pip3 install pygame

如果您已经安装了python 3.6.5,我想您可以只使用switch。

答案 9 :(得分:0)

某些Mac需要更新。如果转到系统偏好设置并转到软件更新,则可以尝试更新以查看是否需要任何更新。更新时,您可以检查代码是否现在可以正常工作,因为看起来您的代码正确无误。