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

让pygame在Macos上显示除空白屏幕以外的任何内容时出现问题,macos,python-2.7,pygame,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.g

我最近买了一台新的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都在运行
Python2.7.10

有人知道我做错了什么吗?我想我安装的
pygame
与我在旧macbook上安装的完全一样,唯一的区别似乎是操作系统

编辑1:
我用升华文本编写脚本,并在终端上运行程序。

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

使用工作解决方案编辑: 见下文


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

在(两)台Windows计算机上,程序工作并在以下位置显示红色窗口:

  • python2.7
  • python3.6
  • python3.7
因此,这似乎不是Python版本的问题,我倾向于MacOS Mojave问题

莫哈韦引入了“黑暗模式”,自动为窗户着色。当黑暗模式被禁用时,我得到一个空白屏幕。当它被启用时,我会看到一个黑色的屏幕。可能是MacOS控制了屏幕显示并摆弄了
pygame
控制屏幕的方式?这只是一个理论,但我不知道如何检验它


编辑: 我尝试了一个pygame程序,它记录并打印你点击屏幕的位置。它会在控制台中输出位置,可惜它没有显示任何内容。 除了显示故障外,
pygame
似乎工作正常


编辑:
目前,从和使用的Python版本似乎可以工作。

我尝试将我的旧macbook升级到OS Mojave,看看pygame是否会停止工作,结果它成功了

我猜莫哈韦与pygame还不兼容


谢谢你的帮助

MacOS 10.14.1的最新更新

如果您从官方页面下载Python3.7.2的官方macOS x64安装程序包并键入
pip3 install pygame
,它就可以工作了

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

pygame的问题是:


自制问题在这里:

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

我发现降级到Python3.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

详细信息在

我也遇到了同样的问题,通过将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

如果您已经安装了Python3.6.5,我想您可以使用switch。

已经在macOS 10.15 Catalina、Python3.7.5、PyGame 2.0.0和PyGame 1.9.6上测试和工作(撰写本文时稳定)

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

1.查找最新的稳定版本 转到PyGame的GitHub页面:

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

2.从源代码在macOS上安装PyGame
  • 安装一些依赖项
    brew安装sdl2 sdl2\u gfx sdl2\u图像sdl2\u混合器sdl2\u网络sdl2\u ttf
    。这就需要
  • 转到
    网站包
    • 对于虚拟环境请转到
      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卸载pygame
    (如果
    pygame
    目录存在于
    site packages
    中,则将其删除:
    rm-rf pygame*
  • 从GitHub克隆PyGame:
    • git克隆https://github.com/pygame/pygame.git
      最新版本(可能不是稳定版本)
    • git克隆-b1.9.6https://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--sdl2
      更改为
      Python3 setup.py--config--auto--sdl2
  • 运行
    python setup.py install
    (需要一段时间)。
    • 如果你在这方面遇到任何问题
      pip install git+https://github.com/pygame/pygame.git
      
      pip3 install pygame==2.0.0.dev4