Macで1からPythonの環境構築をしていく

##Homebrewのインストール
まず[Homebrew](https://brew.sh/index_ja.html)のサイトへアクセスします

サイト内のスクリプトをターミナルにコピーすることで簡単にインストールできます。
![スクリーンショット 2017-10-18 00.25.15.png](https://qiita-image-store.s3.amazonaws.com/0/172123/7cb700db-1f24-5948-0dd1-d0ab88ec6ae7.png)

正しくインストールされているか確かめるため以下のコマンドをターミナルに入力し保存先がかえってくるか確かめてください。

`$ which brew`

インストールできていれば　`/usr/local/bin/brew`　と保存先のパスがかえってきます。

Homebrewをアップデートする際には以下のコマンドを使います。

`$ brew update && brew upgrade`
##Pyenvのインストール
PyenvはPythonのバージョン管理ソフトウェアです。MacにはデフォルトでSystemというPython2系のバージョンが入っていますが、Pyenvを使って2系と3系をインストールし、用途に合わせて2系と3系を切り替えられるようにします。

まずは先程インストールしたHomebrewを使ってPyenvをインストールします。
Homebrewをインストールしたことでbrewコマンドを使うことができます。
このbrewコマンドを使うことで簡単にPyenvなどのソフトウェアをインストールできます。

以下のコマンドでPyenvをインストールします。

`$ brew install pyenv`

##.bash_profileの編集
自分のホームディレクトリにある.bash_profileを編集します。
やり方としては2通りあります。　　1つはviで以下を直書きする方法

```
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
```

もう1つはターミナルで以下のコマンド1つずつを入力する方法です。
以下を順番に入力していきましょう。

`$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile`
`$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile`
`$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile`

どちらかの方法で.bash_profileにpyenvの設定を書き込んだ後以下のコマンドを入力してリフレッシュします。

`$ source .bash_profile`

以上で.bash_profileの編集は終了です。

次からPythonをインストールしていきます。

##Pythonのインストール
今回は試しにpython3系の3.6.0と2系の2.7.8をインストールしていきます。
pyenvでインストールできるバーションは以下のコマンドで確認することができます。

`$ pyenv install -l`

**インストール**

---**High Sierra以上にバージョンを上げている場合以下の対処が必要となります**---

以下のコマンドを入力
`$ brew install readline openssl xz`

次に~/.env-exporterに以下を記述
`$ vi ~/.env-exporter `

```
export CFLAGS="-I$(xcrun --show-sdk-path)/usr/include"
export CFLAGS="-I$(brew --prefix readline)/include $CFLAGS"
export LDFLAGS="-L$(brew --prefix readline)/lib $LDFLAGS"
export CFLAGS="-I$(brew --prefix openssl)/include $CFLAGS"
export LDFLAGS="-L$(brew --prefix openssl)/lib $LDFLAGS"
export CFLAGS="-I$(brew --prefix sqlite)/include $CFLAGS"
export LDFLAGS="-L$(brew --prefix sqlite)/lib $LDFLAGS"
```

記述後

`$ source ~/.env-exporter`

---**以上が対処となります。以下よりPythonのインストールです**---

python 3.6.0のインストール
`$ pyenv install 3.6.0`

python 2.7.8のインストール
`$ pyenv install 2.7.8`

これでpythonのインストールは完了です。

---**Pythonのインストールが失敗する場合**---
以下のコマンドを入力してxcodeのアップデートを行いもう一度Pythonのインストールを行ってみて下さい。

``$ xcode-select --install``

##pythonのバージョン確認
上記のPythonのインストールでpython2系の2.7.8と3系の3.6.0をインストールしたのでここからはバージョンの確認方法とバージョンの切り替えについて書いていきます。

以下のコマンドでpyenvで管理しているバージョンの一覧を表示することができます。

```
$ pyenv versions  
* system  (set by /Users/xxxxxxx/.pyenv/version)
  2.7.8
  3.6.0
```

macにデフォルトで入っているsystem、そして先程インストールした2.7.8と3.6.0が確認できます。

*がついてるのが現在の使われているバージョンです。今は2.7.8と3.6.0をインストールしただけの状態なのでデフォルトのsystemが起用されています。

##pythonのバージョン切り替え
使用するバージョンを切り替えるには以下のglobalコマンドを用います。

python 3.6.0に切り替える場合
``$ pyenv global 3.6.0``

これでsystemから3.6.0に切り替わります。実際に確認してみましょう。

```
$ pyenv versions  
  system 
  2.7.8
* 3.6.0   (set by /Users/xxxxxxx/.pyenv/version)
```

*印が3.6.0に移動しバージョンが切り替わっていることが分かります。

またディレクトリごとにバージョンを切り替えたい場合はglobalではなくlocalを使います。
例えばデスクトップのみで2.7.8を使いたい場合
desktopに移動
``$ cd desktop ``
localでバージョンの切り替え
``$  pyenv local 2.7.8``

確認してみましょう。

```
$ pyenv versions  
  system 
* 2.7.8   (set by /Users/xxxxxxx/desktop/.python-version)
  3.6.0   
```
*印が3.6.0から2.7.8に変更され
desktopのみバージョン2.7.8が起用されていることが確認できます。

以上で環境構築は終了です。お疲れ様でした。

以下にpythonの環境構築で上手くいかない時の対処法を書いておきます。

##うまくいかない時の対処法

**バージョンが変わらない**
``$ pyenv global xxxx``でも
``$ pyenv local xxxx``してもバージョンが切り替わらない場合

.bash_profileでpythonの設定が

```
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
```
この記述より上にpythonのバージョン設定がされている可能性があります。確認してみてください。

``$ vi ~/.bash_profile ``
で確認できます。

また``$ pyenv versions``ではバージョンが切り替わっているのに``$ python -V``で確認すると切り替わっていないという事態もこれで解決することが多いです。

**pyenv globalが適用されない**
pyenv localはできるのに何故かpyenv globalができない
これはホームディレクトリに.python-versionのファイルが存在していることが原因であることが多いです。
``$ rm ~/.python-version``
で.python-versionのファイルを削除することで解決できます。