[mac][Python]Pygameをインストールする

python pygame

 

 

こんにちは。ナガオカ(@boot_kt)です。

 


mac+Homebrew+PythonでPygameをインストールしようとしたら結構ハマったので、備忘録として書いておきます

似たような状況で困っている方のお役に立てれば嬉しいです

 

注意!
本記事はあくまでも執筆時点(2018/07/16)での内容です

Pythonを始めとする各ソフトウェアのバージョンによっては本記事の内容が通用しなくなることがあります

 

この記事のザックリした内容
◆対象読者

  • macユーザー
  • HomebrewでPythonをインストールしている
  • Pythonのバージョン3を使う(バージョン2は使わない)
  • Pygameのインストールがうまくいかない
  • Pygameのインストール手順を知りたい
  • シンボリックリンクの知識は必要(本記事ではシンボリックリンクの説明はしていません)
  • grep等のコマンドの知識は必要(本記事では各コマンドの説明はしていません)

 

◆解決できるかも知れないお悩み

  • Pygameのインストール
  • Pygameのインストールが失敗している原因

 

◆どうやって解決するか

  • Homebrewが参照してるPythonとpipのバージョンを確認する
  • 環境変数PATHを確認する
  • .bash_profileを確認する

 

 

 

 

 

インストール前にチェックすべきこと

1.Homebrewのパッケージがインストールされる場所の確認

$ brew –prefix
/usr/local

 

2.インストールされているPythonの確認

$ ls -la /usr/local/bin/ | grep python
lrwxr-xr-x    1 hogebar  admin        38  7 16 17:01 2to3-2 -> ../Cellar/python@2/2.7.15_1/bin/2to3-2
lrwxr-xr-x    1 hogebar  admin        40  7 16 17:01 2to3-2.7 -> ../Cellar/python@2/2.7.15_1/bin/2to3-2.7
lrwxr-xr-x    1 hogebar  admin        44  7 16 17:01 easy_install -> ../Cellar/python@2/2.7.15_1/bin/easy_install
lrwxr-xr-x    1 hogebar  admin        48  7 16 17:01 easy_install-2.7 -> ../Cellar/python@2/2.7.15_1/bin/easy_install-2.7
lrwxr-xr-x    1 hogebar  admin        36  7 16 17:01 idle -> ../Cellar/python@2/2.7.15_1/bin/idle
lrwxr-xr-x    1 hogebar  admin        37  7 16 17:01 idle2 -> ../Cellar/python@2/2.7.15_1/bin/idle2
lrwxr-xr-x    1 hogebar  admin        39  7 16 17:01 idle2.7 -> ../Cellar/python@2/2.7.15_1/bin/idle2.7
lrwxr-xr-x    1 hogebar  admin        35  7 16 17:01 pip -> ../Cellar/python@2/2.7.15_1/bin/pip
lrwxr-xr-x    1 hogebar  admin        36  7 16 17:01 pip2 -> ../Cellar/python@2/2.7.15_1/bin/pip2
lrwxr-xr-x    1 hogebar  admin        38  7 16 17:01 pip2.7 -> ../Cellar/python@2/2.7.15_1/bin/pip2.7
lrwxr-xr-x    1 hogebar  admin        34  7 16 17:29 pip3.7 -> ../Cellar/python3/3.7.0/bin/pip3.7
lrwxr-xr-x    1 hogebar  admin        37  7 16 17:01 pydoc -> ../Cellar/python@2/2.7.15_1/bin/pydoc
lrwxr-xr-x    1 hogebar  admin        38  7 16 17:01 pydoc2 -> ../Cellar/python@2/2.7.15_1/bin/pydoc2
lrwxr-xr-x    1 hogebar  admin        40  7 16 17:01 pydoc2.7 -> ../Cellar/python@2/2.7.15_1/bin/pydoc2.7
lrwxr-xr-x    1 hogebar  admin         7  7 16 17:37 python -> python3
lrwxr-xr-x    1 hogebar  admin        14  7 16 17:37 python-config -> python3-config
lrwxr-xr-x    1 hogebar  admin        39  7 16 17:01 python2 -> ../Cellar/python@2/2.7.15_1/bin/python2
lrwxr-xr-x    1 hogebar  admin        46  7 16 17:01 python2-config -> ../Cellar/python@2/2.7.15_1/bin/python2-config
lrwxr-xr-x    1 hogebar  admin        41  7 16 17:01 python2.7 -> ../Cellar/python@2/2.7.15_1/bin/python2.7
lrwxr-xr-x    1 hogebar  admin        48  7 16 17:01 python2.7-config -> ../Cellar/python@2/2.7.15_1/bin/python2.7-config
lrwxr-xr-x    1 root     wheel        69  5  1  2016 python3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3
lrwxr-xr-x    1 root     wheel        72  5  1  2016 python3-32 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3-32
lrwxr-xr-x    1 root     wheel        76  5  1  2016 python3-config -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3-config
lrwxr-xr-x    1 root     wheel        71  5  1  2016 python3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5
lrwxr-xr-x    1 root     wheel        74  5  1  2016 python3.5-32 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5-32
lrwxr-xr-x    1 root     wheel        78  5  1  2016 python3.5-config -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5-config
lrwxr-xr-x    1 root     wheel        72  5  1  2016 python3.5m -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5m
lrwxr-xr-x    1 root     wheel        79  5  1  2016 python3.5m-config -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5m-config
lrwxr-xr-x    1 hogebar  admin        39  7 16 17:01 pythonw -> ../Cellar/python@2/2.7.15_1/bin/pythonw
lrwxr-xr-x    1 hogebar  admin        40  7 16 17:01 pythonw2 -> ../Cellar/python@2/2.7.15_1/bin/pythonw2
lrwxr-xr-x    1 hogebar  admin        42  7 16 17:01 pythonw2.7 -> ../Cellar/python@2/2.7.15_1/bin/pythonw2.7
lrwxr-xr-x    1 hogebar  admin        40  7 16 17:01 smtpd.py -> ../Cellar/python@2/2.7.15_1/bin/smtpd.py
lrwxr-xr-x    1 hogebar  admin        43  7 16 17:01 smtpd2.7.py -> ../Cellar/python@2/2.7.15_1/bin/smtpd2.7.py
lrwxr-xr-x    1 hogebar  admin        41  7 16 17:01 smtpd2.py -> ../Cellar/python@2/2.7.15_1/bin/smtpd2.py
lrwxr-xr-x    1 hogebar  admin        37  7 16 17:01 wheel -> ../Cellar/python@2/2.7.15_1/bin/wheel

 

ここで注目すべきはpythonpython-config

上記ではpython3python3-configにリンクされています(僕がそういう風にリンクを変更しました)

 

このような形、もしくはpythonpython3python-configpython3-configが同じ場所を示している必要があると思います

 

今回はPythonのバージョン3.5を使いたいのでpythonがバージョン3.5に割り当たっていればOK

 

理由ですが、後述するbrew install mercurialpythonのパスを見ているようなのです(python3ではなくpythonを見ているのがミソ)

 

pipについて

pipも当然バージョン3.5を使います

が、下記の例で言えばpip3.5を使えばいいだけなので、pipのリンク先はどこでもいいっす

$ ls -la /usr/local/bin/ | grep pip
lrwxr-xr-x    1 hogebar  admin        35  7 16 17:01 pip -> ../Cellar/python@2/2.7.15_1/bin/pip
lrwxr-xr-x    1 hogebar  admin        36  7 16 17:01 pip2 -> ../Cellar/python@2/2.7.15_1/bin/pip2
lrwxr-xr-x    1 hogebar  admin        38  7 16 17:01 pip2.7 -> ../Cellar/python@2/2.7.15_1/bin/pip2.7
lrwxrwxr-x    1 root     admin        68  5  1  2016 pip3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pip3.5
-rwxr-xr-x    1 hogebar  admin       236  4 12 04:12 pip3.6
lrwxr-xr-x    1 hogebar  admin        34  7 16 17:29 pip3.7 -> ../Cellar/python3/3.7.0/bin/pip3.7

 

 

広告




 

Pygameのインストール手順の確認

↓ここを見てね、英語だけどこれぐらいは読んでね

 

上記のインストール手順に辿り着くまでの経路

  1. Pygame公式サイト
  2. Getting Startedクリック
  3. GettingStarted — wikiに遷移する
  4. 画面の下の方にあるMac OS X Compiling InfoMacCompileのリンクをクリック
  5. MacCompile — wikiに遷移する
  6. Python3, Macs and Pygameの文中にあるon hereのリンクをクリック
  7. python – Can’t install pygame on mac – Stack Overflowに遷移する

 

 

広告




 

Pygameのインストール手順

インストール手順は公式サイト等で確認してね
インストール手順は変わっている可能性があるので、公式サイト等で確認してくださいね

 

※Python等は入っているものとします

  1. brew install mercurial
    ※インストールログに出てくるPythonのバージョンに注意!
  2. brew install sdl sdl_image sdl_mixer sdl_ttf portmidi
  3. brew tap homebrew/headonly
  4. brew install smpeg
  5. sudo -H pip3.5 install hg+http://bitbucket.org/pygame/pygame
    ※pipのバージョンに注意!

 

前章で示したStack Overflowのリンクでは、失敗した時の代替えコマンドも書いてるので、それも見ておくと良いでしょう(英語だけど簡単な英語なので読めるはず)

 

 

広告




 

Pygameがインストールされた事の確認

REPLでimport pygameを打ってエラーが出なければOK

 

こうなればOK

$ python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
>>> 

 

こうなったらダメ!

$ python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
Traceback (most recent call last):
  File "", line 1, in 
ModuleNotFoundError: No module named 'pygame'

 

 

広告




 

サンプルプログラム

以下はオマケ

ウィンドウを表示するだけのサンプルプログラム

 

import sys
import pygame
from pygame.locals import QUIT

#-------------------------------------
# 初期処理
#-------------------------------------
# Pygame初期化
pygame.init()

# ウィンドウ
w = pygame.display.set_mode((400,300))

# タイトルバーに表示
pygame.display.set_caption("My First Window")


#-------------------------------------
# Windowを出すだけ
#-------------------------------------
def main():
    
    while True:
        # 画面の色:真っ白
        w.fill((255, 255, 255))
        
        # 画面更新
        pygame.display.update()
        
        # イベント取得
        for event in pygame.event.get():
            # 閉じるボタンが押されたら画面閉じて王
            if event.type == QUIT:
                pygame.quit()
                sys.exit()


#-------------------------------------
# メイン時のみmain()関数コール
#-------------------------------------
if __name__ == '__main__':
    main()

 

広告




 

さいごに、

ただ単にpygameをimportしたかっただけなのに、Pythonやpipのバージョンの関係性を探るのに半日も使ってしまった

貴重な休日なのに・・・

 

ひとまずこれでPygameの勉強が進められるのでヨシとしよう

 


 

プログラミング のレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!

 

 

python pygame

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。