mac+Homebrew+PythonでPygameをインストールしようとしたら結構ハマったので、備忘録として書いておきます
似たような状況で困っている方のお役に立てれば嬉しいです
Pythonを始めとする各ソフトウェアのバージョンによっては本記事の内容が通用しなくなることがあります
- macユーザー
- HomebrewでPythonをインストールしている
- Pythonのバージョン3を使う(バージョン2は使わない)
- Pygameのインストールがうまくいかない
- Pygameのインストール手順を知りたい
- シンボリックリンクの知識は必要(本記事ではシンボリックリンクの説明はしていません)
- grep等のコマンドの知識は必要(本記事では各コマンドの説明はしていません)
◆解決できるかも知れないお悩み
- Pygameのインストール
- Pygameのインストールが失敗している原因
◆どうやって解決するか
- Homebrewが参照してるPythonとpipのバージョンを確認する
- 環境変数PATHを確認する
- .bash_profileを確認する
Contents
>> [Mac][Ruby]Rails環境構築には、データベースとしてSQLiteをオススメする!
→「keg-only」で検索してその付近が参考になるかも
インストール前にチェックすべきこと
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
ここで注目すべきはpython
とpython-config
上記ではpython3
とpython3-config
にリンクされています(僕がそういう風にリンクを変更しました)
このような形、もしくはpython
とpython3
、python-config
とpython3-config
が同じ場所を示している必要があると思います
今回はPythonのバージョン3.5を使いたいのでpython
がバージョン3.5に割り当たっていればOK
理由ですが、後述するbrew install mercurial
でpython
のパスを見ているようなのです(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のインストール手順の確認
↓ここを見てね、英語だけどこれぐらいは読んでね
上記のインストール手順に辿り着くまでの経路
- Pygame公式サイト
- Getting Startedクリック
- GettingStarted — wikiに遷移する
- 画面の下の方にあるMac OS X Compiling InfoのMacCompileのリンクをクリック
- MacCompile — wikiに遷移する
Python3, Macs and Pygame
の文中にあるon here
のリンクをクリック- python – Can’t install pygame on mac – Stack Overflowに遷移する
Pygameのインストール手順
※Python等は入っているものとします
brew install mercurial
※インストールログに出てくるPythonのバージョンに注意!brew install sdl sdl_image sdl_mixer sdl_ttf portmidi
brew tap homebrew/headonly
brew install smpeg
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の勉強が進められるのでヨシとしよう
プログラミング のレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!