专栏首页《python编程 从入门到实践》解决Mac无法成功安装pygame,无法更改窗口背景颜色,不显示飞船图像的问题
原创

解决Mac无法成功安装pygame,无法更改窗口背景颜色,不显示飞船图像的问题

在学习《python编程 从入门到实践》这本书的过程中,按照书上的操作步骤,当我们在终端中使用pip3 install --user hg+http://bitbucket.org/pygame/pygame 命令无法安装pygame,或者通过pip3 install pygame 命令成功安装后,在编写《外星人入侵》代码中调用 import pygame 模块运行程序,会发现python应用图标一直在程序坞中跳动或者不动(如果系统偏好设置里没有开启打开程序时跳动则不动),虽然此时可以通过卸载python(很大一部分原因是因为你的python是官网下载安装的), 然后通过homebrew的方法将python跟pygame必须完全用终端安装的方法解决(命令书上有,但是你将可能遇到下面的问题)。

虽然在终端中用 pip3 install pygame 命令可以成功安装pygame, 并且可以成功运行pygame窗口。但是,在接下来的编写过程中,会出现新的问题。pygame窗口无法更改背景色无法显示飞船图像。通过测试一系列方法,如重新去官网安装python(什么32位跟64位必须匹配之类的),通过命令直接安装python(书上的homebrew方法),更改代码中的pygame.event.get(),或者安装低版本python等都无法解决这些问题。

这个问题出现的原因有两点,一是mac系统的兼容性问题(降低Mac系统的方法还是不要尝试了),二是如果按照这本书的安装教程先安装homebrew 再通过brew install pytion的方法并不适合现在版本的python。

所以,以下将总结一个切实有效的方法来解决以上所有的问题。避免像我一样的初学者走太多弯路。

整体思路是我们需要通过另一种方法来安装python跟pygame。这里我们用到的是anaconda(就当是一个很全的python软件,安装好后可以省去你安装其他库的步骤,其实我刚开始也是拒绝的,因为是英文)

安装anaconda的前提是需要我们彻底卸载已经安装的pip3 , pygame, python3。(原谅我在这里没办法将卸载方法具体写出来,因为我最后实在删不了旧版本pip3选择了重置Mac,卸载步骤可以自行搜索。)

卸载完成后,我们就可以愉快的安装anaconda了(虽然是英文软件,但是不要担心,很好用,安装方法自行搜索,下载慢的话搜下载慢的解决方法)。anaconda自带python,安装好anaconda后,python跟一些库自然就安装好了,不需要再安装别的什么。接下来我们直接安装pygame,打开终端,输入 conda install pip 可能会提示更新,敲入y,回车。然后更新完pip后,输入 pip install pygame(注意所有的安装命令都不需要区分python跟python3 或者pip 跟pip3 )。安装成功后可以在终端中输入

python -m pygame.examples.aliens 命令测试一下如果出现游戏画面恭喜你安装成功。最后如果你用的sublime作为文本编辑器,需要重新配置下路径,python的路径不再是书上的了,需要通过type -a python3命令重新查看(复制第一个路径)。好了,继续学习python吧。

有任何问题欢迎留言。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python实现BT种子转化为磁力链接【实战】

    经常看电影的朋友肯定对BT种子并不陌生,但是BT种子文件相对磁力链来说存储不方便,而且在网站上存放BT文件容易引起版权纠纷,而磁力链相对来说则风险小一些。

    一墨编程学习
  • python开发中容易犯的错误整合

    pip安装对于开发者来说确实是一种解放。可以自动安装依赖包,但执行最简单的pip安装命令时,并不是所有的依赖都会安装。有一些是模块可选择的,比如gunicorn...

    py3study
  • 初识Pycharm

    PyCharm2017是由JetBrains打造的一款IDE,主要服务于python语言,可以进行调试、语法高亮、代码跳转、智能提示、自动完成、单元测试等功能。...

    fem178
  • web | Django,高大上的存在

    佛系编程人
  • 以太坊合约分析之拍卖算法

    拍卖的基本流程很简单,一般就是拍卖人亮出一件商品,拼命的宣传吹嘘商品的价值,然后进入一轮又一轮的竞价过程,待拍卖时间结束,价高者和拍卖人一手交货一手交钱。

    老钱
  • Linux安装Python环境

    linux系统环境自带python2.6,但有时我们项目使用的版本可能是3.x以上等等,此时我们需要在linux中再安装项目所需的python版本,此时就涉及...

    py3study
  • 初识python脚本#学习猿地

    # 变量就是用一个英文字符串来记录或标记一些数据,并且这个被标记的数据是可以变化的

    学习猿地
  • 初识python脚本#学习猿地

    # 变量就是用一个英文字符串来记录或标记一些数据,并且这个被标记的数据是可以变化的

    学习猿地
  • Linux服务器使用Crontab控制定时任务

    刺_猬
  • AnnotationProcessor实战:实现ButterKnife的findViewById方法

    要实现findViewById,需要四个参数(控件类型,控件变量名,宿主view(通常是activity,我们一般省去),以及控件id) BindView 通...

    提莫队长

扫码关注云+社区

领取腾讯云代金券