after_the_rain 发表于 2020-10-22 09:52:21

小白求问,用sublime text打开pygame为啥报错?。。。

本帖最后由 after_the_rain 于 2020-10-22 09:59 编辑

本人使用macbook,跟着《Python编程:从入门到实践》学python,写程序一直跟着书里的方式用sumlime text3
这次到了写外星人入侵的小游戏,跟着书上的步骤安装了pip、homebrew、pygame
安装过程中报过错,但是一是提示下载python3.8时候出错(但我电脑上已经装了3.8.5且一直在用了,就没管它),第二是提示虽然安装homebrew和pygame成功,但因为我的mac版本是os10.12,提示我类似说有些内容可能已经不支持了,建议升级os版本(目前暂时也没管它)
而且目前在终端中运行import pygame已经可以提示pygame 1.9.6,没有其他报错,应该这就是装好了吧。。
但是在继续跟着书上内容,通过sublime text3写程序的第一步就出错了
代码内容如下:
import sys
import pygame
def run_game():
        # 初始化游戏并创建一个屏幕对象
        pygame.init()
        screen = pygame.display.set_mode((1200,800))
        pygame.display.set_caption("Alien Invasion")
        # 开始游戏的主循环
        while True:
                # 监视键盘和鼠标事件
                for event in pygame.event.get():
                        if event.type == pygame.QUIT:
                                sys.exit()
                        # 让最近绘制的屏幕可见
                        pygame.display.flip()
run_game()

写完执行的时候报错,显示:
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
2020-10-22 09:48:28.026 Python _initWithWindowNumber: error creating graphics ctxt object for ctxt:0x0, window:0x0
Oct 22 09:48:28Python <Error>: CGContextDrawImage: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Oct 22 09:48:28Python <Error>: CGContextFlush: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

而且Dock栏会出来一个跳跳跳的小火箭(名字叫Python),但是跳一会儿也没什么反应,点了也没用,显示程序没有响应,只能强行关闭

求问各路大神这是为啥呃?。。可能是哪里配置不对么?还是说必须先升级了mac os,或者重新装下pip还是啥的么?。。。
万分感谢

after_the_rain 发表于 2020-10-22 10:22:38

嗯貌似找到了一个报错的原因
好像是因为我装的python是3.8版本,需要pygame 2.0版本以上才能对应。之前装的pygame是1.9.6,就会出现上面的问题,小火箭一直蹦却打不开pygame界面
要么把python退回3.7或更低版本,要么把pygame升级到2.0及以上版本,貌似就解决了。。。

丶苟富贵 发表于 2020-10-30 23:12:11

可以加个好友吗,我也是MacBook,遇到了点问题

疾风怪盗 发表于 2020-10-30 23:38:16

都是用的windows版的,苹果系统不熟悉

张育玮 发表于 2020-11-10 19:20:53

是pygame的版本不匹配导致的。
页: [1]
查看完整版本: 小白求问,用sublime text打开pygame为啥报错?。。。