【问题标题】:Segmentation fault: 11 when trying to run Pygame分段错误:尝试运行 Pygame 时出现 11
【发布时间】:2016-09-27 16:13:52
【问题描述】:

我正在使用 OSX 10.11.6、Python 2.17.12 和 Pygame 1.9.1。 我做了一个简单的程序,它应该在一个白色区域的中间显示一个黑色矩形。但是,当我尝试运行它时,我收到一条错误消息:

Segmentation fault: 11

我尝试了几件事,但似乎没有任何效果。这是我的代码:

import pygame

pygame.init()

white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)

gameDisplay = pygame.display.set_mode((800, 600))
pygame.display.set_caption('Slither')

gameExit = False

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

    gameDisplay.fill(white)
    pygame.draw.rect(gameDisplay, black, [400, 300, 20, 20])

    pygame.display.update()

pygame.quit()
quit()

有人知道我该如何解决这个问题吗?提前致谢! 注意:我正在 Atom 中编写代码,并使用以下命令在终端中运行它:

$ python2.7-32 slither.py

【问题讨论】:

  • 该代码在 Windows 上与 pygame==1.9.2a0 + Python 2.7.11 一起工作正常。我建议您开始评论行,直到确定您在什么时候遇到段错误。例如,当你做import pygame; pygame.init()时发生了什么,它会崩溃吗?
  • 这绝对与您的安装有关。我在 10.11.6、Pygame 1.9.2a0 和 Python 2.7.12 和 3.5.2。您运行旧版本的 pygame 是否有原因? 1.9.1 是 2012 版本。
  • 当我尝试下载 1.9.2 版本时,它说这是不可能的,因为它与我的 OSX 版本不兼容。因此我从 python.org 下载了 Python 2.7 以及 Pygame 1.9.1
  • 我在 OS X 上一直使用 1.9.2。“它说”——那是什么意思?你是如何尝试安装的?在 OS X 上安装曾经很痛苦,但现在您只需执行“pip install pygame”即可。我只是在一组运行 El Capitan 的 Macbook 教室上完成的。

标签: python terminal pygame


【解决方案1】:

这是由于 Pygame 所依赖的内置 SDL 库中存在缺陷。 Pygame 可以创建一个屏幕,但尝试触摸它会立即崩溃并显示分段错误 11。

从 SDL 官方网站,转到 the download page 并获取适用于 Mac 的运行时库 1.2.15。打开您下载的 .dmg,您将获得一个 SDL.framework 文件。在 Finder 中打开 /Library/Frameworks 并将框架文件移到那里。您可能需要选择替换。

【讨论】:

    猜你喜欢
    • 2016-08-06
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多