macOS High Sierraに Python3 + PyGame環境をインストール

Python3 + PyGame 環境を Mac環境にインストールしたときの手順メモ

インストール手順は
[ゲームを作りながら楽しく学べるPythonプログラミング](https://www.amazon.co.jp/dp/product/B06XRQS8PN/ref=as_li_tf_tl?camp=247&creative=1211&creativeASIN=B06XRQS8PN&ie=UTF8&linkCode=as2&tag=bookmeter_book_image_image_pc_logoff-22) を参考に進めた。


### 環境
* macOS 10.13.6


### 1. Apple Store からXcodeをダウンロード、インストール

![スクリーンショット 2018-09-05 11.28.38.png](https://qiita-image-store.s3.amazonaws.com/0/168023/25c52733-5858-4f59-40dd-65b0e3d4bb61.png)

5.3Gくらいあるからこれが時間がかかる。

### ２. ターミナルからXcodeコマンドラインツールをインストール

```
$ xcode-select --install
```

既にインストールされている旨のエラーが出た。

```
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
```

Xcodeインストール時に一緒にインストールされたか?次に進める。

### 3. homebrewインストール

```
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

### 4. homebrew caskインストール

homebrew でdmg形式パッケージを扱うhomebrewの拡張ツール

```
$ brew install caskroom/cask/brew-cask
```

```
==> brew cask install caskroom/cask/brew-cask 
Error: Broken pipe @ io_write - <STDOUT>
Error: Cask 'brew-cask' is unavailable: '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks/brew-cask.rb' does not exist.
```

[公式](http://caskroom.io/) のインストール方法に倣うことに。

```
$ brew tap caskroom/cask
```


### ５. 残りソフトウェアをインストール

#### X11(xquartz)インストール

```
$ brew cask install xquartz
```

#### python3インストール

```
$ brew install python3
```

#### dupesインストール(不要)

`$ brew install homebrew/dupes/tcl-tk` でインストールするとのことだが、

```
Error: homebrew/dupes was deprecated. This tap is now empty as all its formulae were migrated.
```

とエラーが出た。
調べてみると、  [homebrew-core](https://github.com/Homebrew/homebrew-core) に統合されたらしい。

https://brew.sh/2017/05/01/homebrew-1.2.0/
> Today I’d like to announce Homebrew 1.2.0. The most significant change since 1.1.0 is that most Homebrew taps (package repositories) in the Homebrew GitHub organisation have been deprecated and the currently buildable software moved into Homebrew/homebrew-core. 

なので、dupesのインストールは不要と判断。


#### gitインストール

```
$ brew install git
```

既にインストール済のため、スキップ。


#### SDL(Simple DirectMedia Layer), PortMidi, libogg, libvorbisのインストール

```
$ brew install sdl sdl_image sdl_ttf portmidi libogg libvorbis
$ brew install sdl_mixer
```

#### headonly リポジトリをhomebrewに追加

```
$ brew tap homebrew/headonly
```

取り込み元である、 https://github.com/Homebrew/homebrew-head-only と見てみると
こちらも `homebrew-core` に移行したらしいため、 `deprecated` となっている。コマンド自体は通ったが、不要かも？

#### SMPEGインストール

```
$ brew install smpeg 
```

#### Mercurialインストール

```terminal
$ brew install mercurial 
```

#### pygameインストール

```
$ pip3 install hg+http://bitbucket.org/pygame/pygame
```

以下のようなエラーが発生。

```
Command "/usr/local/opt/python/bin/python3.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/wb/3z64dtmx7gs3mk5l2g73h5040000gn/T/pip-req-build-ogixopgy/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/wb/3z64dtmx7gs3mk5l2g73h5040000gn/T/pip-record-5a_4ya4b/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/wb/3z64dtmx7gs3mk5l2g73h5040000gn/T/pip-req-build-ogixopgy/
```

よくわからないので、 代わりに以下のコマンドでインストール。
(このコマンドでインストールするなら、Mercurialのインストール不要だったかもしれない。)

```
$ pip3 install pygame
```

### 6. 動作確認

ターミナルからpython3を起動。
`import pygame` と入力してエラーがでないことを確認。

```
$ python3
Python 3.7.0 (default, Sep  7 2018, 11:45:06) 
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
pygame 1.9.4
Hello from the pygame community. https://www.pygame.org/contribute.html
```