Python3 TensorFlow for Mac 環境構築

#前提
##本チュートリアルについて
TensorFlowを一から学ぶ場合、様々な知識や高価なコンピュータが必要ですが、本チュートリアルではそれらの前提を取っ払って "**とりあえず動かしてみる**" というフィーリングの元にTensorFlowの環境構築を行います。

##環境
 - OS:
 Mac OS Sierra 10.12.6
 - 言語 :
 Python 3.6.0

python3.7以上でTensorFlowを動作させたい場合は下記の記事が参考になります。
参考 : [MacOS Mojave & Python3.7 でTensorflow環境構築しようとして詰まった話](https://qiita.com/nahshi/items/fcf4898f7c45f11a5c63#_reference-200c961dc8073f2a9e15)

macOS Mojaveで動作させる場合は下記の記事が参考になります。
参考 : [macOS Mojaveで pyenvを使ってpython3系を使えるようにする](https://qiita.com/nissynishizawa/items/1b2cfb6c4e4518185276#_reference-435a6eb146e293bcefcc)

##対象読者
 - TensorFlowを始めたい方
 - とりあえずTensorFlowを動かしたい方
 - 最小構成で環境構築をしたい方

##目次
 - 1.Xcode Command Line Toolsのインストール
 - 2.Homebrewのインストール
 - 3.pyenv-virtualenvのインストール
 - 4.TensorFlowのPython環境を構築
 - 5.pipのインストール
 - 6.TensorFlowのインストール

#TensorFlowの開発環境を構築
##1.Xcode Command Line Toolsのインストール

###Command Line Toolsとは
> Command Line Toolsは、AppleがMacOS/MacOSX 向けに提供している統合開発環境の一部です。UNIXベースのアプリケーションをインストールする際に必要なGCCコンパイラ等が含まれています。AppleIDを持っている方は[AppleDeveloper](https://developer.apple.com/download/more/)でダウンロードすることも可能です。
> **Command Line Toolsをインストールする前に、XcodeをAppStoreから[入手](https://itunes.apple.com/jp/app/xcode/id497799835?mt=12)してください。**


後にインストールするHomebrewの前提作業です。
Xcode Command Line toolsをインストールします。

```Bash:terminal
$xcode-select --install
```
ライセンスの許可を求められる場合は、ライセンス使用許諾契約に同意してください。

※以下のようなエラーが出力される場合、既にCommand Line toolsはインストールされています。

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

##2.Homebrewのインストール

###HomeBrewとは
> HomeBrewはMacOS/MacOSX向けに提供されているパッケージマネージャーです。コマンドラインからソフトウェアの管理が行えます。
> 一般的にソフトウェアをインストールする場合、ソフトウェアの実行ファイルを手動で取得するか、ソースコードを手動でビルドする必要がありますが、HomeBrewはそれらの一連の作業を自動的に行います。


[Homebrew](https://brew.sh)公式サイトに記載されている以下のコマンドをコピーして実行します。

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

下記ように出力されている場合、Homebrewのインストールは完了しています。

```Bash:terminal
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
...
...
==> Installation successful!
==> Homebrew has enabled anonymous aggregate user behaviour analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics.html
==> Next steps:
- Run `brew help` to get started
- Further documentation: 
    https://docs.brew.sh
```

##3.pyenv-virtualenvのインストール

###pyenv,pyenv-virtualenvとは
> pyenvはpythonのバージョン管理システムです。Pythonのバージョン切り替えが行えます。
> pyenv-virtualenvはPython環境を管理するためのPyenvプラグインです。

Homebrewでpyenvをインストールします。

```Bash:terminal
$ brew install pyenv
```

Homebrewでpyenv-virtualenvをインストールします。

```Bash:terminal
$ brew install pyenv-virtualenv
```
Pythonのバージョン一覧を表示して確認します。

```Bash:terminal
$ pyenv install -l
```

Python3.6.0をインストールし、Shimsをリフレッシュします。

```Bash:terminal
$ pyenv install 3.6.0
...
...
$ pyenv rehash
```

##4.TensorFlowのPython環境を構築
TensorFlowのPython環境を作成します。

```Bash:terminal
$ pyenv virtualenv 3.6.0 TensorFlow
$ pyenv rehash
```

TensorFlow用に作成したPython環境を指定します。

```Bash:terminal
$ pyenv global TensorFlow
```

TensorFlow用に指定したPython環境を確認します。


```Bash:terminal
$ python --version
Python 3.6.0
```

##5.pipのインストール
###pipとは
> pip(Pip Installs Packages)はPythonのパッケージ管理システムです。pythonでサードパーティ製のライブラリを利用したい場合、pipでそれらのパッケージを管理できます。

Pythonのプラグイン管理ツール(pip)をインストールし、アップデートします。

```Bash:terminal
$ sudo easy_install pip
$ sudo easy_install --upgrade six
$ sudo pip install --upgrade pip
```
##6.TensorFlowのインストール
pipでTensorFlowをインストールします。

```Bash:terminal
$ pip3 install --upgrade tensorflow
```

TensorFlowの動作確認をします。

```Bash:terminal
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
```

以下のようにエラーが出力された場合は、下記リンクも参考にしてください。

```Bash:terminal
this TensorFlow binary was not compiled to use: AVX2 FMA
```
参考:[(Qiita)macOS で「this TensorFlow binary was not compiled to use: AVX2 FMA」エラー](https://qiita.com/KEINOS/items/4c66eeda4347f8c13abb)


exit()で終了します。


```Bash:terminal
>>> exit()
```

次回はTensorFlowで遊びます。

##追記
2017/8/21 pyenvのインストールする項目を追記しました。