[Python] Django の環境構築 (pyenv + pyenv-virtualenv + Anaconda) for macOS

Python Django 環境 (& 機械学習用の環境) を構築するための自分用手順メモになります。
"pyenv" + "pyenv-virtualenv" + "Anaconda" で構成しました。

 ※ 環境
　macOS Sierra バージョン 10.12.3
　MacBook Air (Early 2014)

###1. XCode のインスト―ル
```Terminal:Terminal
$ xcode-select --install (# ポップアップ ウインドウが起動したら、install ボタンをクリック)
```

###2. Homebrew のインストール
```Terminal:Terminal
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

<参考>
$ brew update && brew upgrade (# Homebrew のアップデート)
```
 (参照 1 - 2)
　- [MacOSとHomebrewとpyenvで快適python環境を。](http://qiita.com/crankcube@github/items/15f06b32ec56736fc43a)

###3. pyenv および pyenv-virtualenv のインストール
```Terminal:Terminal
$ brew install pyenv
$ brew install pyenv-virtualenv
```

###4. .bash_profile ファイルの設定
```Terminal:Terminal
$ vim ~/.bash_profile (# .bash_profile ファイル内に下記内容を記述)

  ## Set path for pyenv
  export PYENV_ROOT="$HOME/.pyenv"
  export PATH="$PATH:$PYENV_ROOT/bin:$PYENV_ROOT/shims"
  # eval "$(pyenv init -)" (# 必要に応じて設定)
  # eval "$(pyenv virtualenv-init -)" (# 必要に応じて設定)
```
```Terminal:Terminal
$ source ~/.bash_profile (# 設定を反映させる)
```

###5. pyenv 経由で Anaconda (Python 3 系 and 2 系) のインストール
```Terminal:Terminal
$ pyenv install -l | grep anaconda3 (# 最新の Anaconda (Python3 系) のバージョンを確認)
$ pyenv install anaconda3-4.3.1 (# 最新バージョンをインストール)
$ pyenv install anaconda2-4.3.1 (# Python2 系も併せてインストール)
$ python --version
   Python 3.6.1 :: Anaconda 4.3.1 (x86_64)  

$ pyenv global anaconda3-4.3.1 (# 全てのディレクトリに対して、指定したバージョンの仮想環境が設定される)
$ pyenv versions
　　system
    anaconda2-4.3.1
　* anaconda3-4.3.1
```

###6. Django プロジェクト用の Python 仮想環境を作成
```Terminal:Terminal
$ pyenv virtualenv anaconda3-4.3.1 django001
 (# "django001" という名前で、バージョン "anaconda3-4.3.1" の仮想環境を新規に作成)
$ pyenv versions
　　system
    anaconda2-4.3.1
　* anaconda3-4.3.1
　　django001
 (# pyenv で指定可能な仮想環境に、先ほど作成した "django001" が追加される)
```

###7. Django をインストールするディレクトリに Python 仮想環境を設定
※ pyenv local で個々のディレクトリに対し、個別に仮想環境 (ここでは "django001") を設定することができる。
仮想環境が設定された該当ディレクトリ (ここでは "mydjango" ディレクトリ) 配下で、例えば複数のライブラリのインストール等を行った場合でも、他の環境 (ディレクトリ) には一切影響しないのでとても使い勝手が良い。

```Terminal:Terminal
$ mkdir mydjango (# Django をインストールをするディレクトリ "mydjango" を作成)
$ cd mydjango (# "mydjango" ディレクトリに移動)
$ pyenv local django001 (# "mydjango" ディレクトリに仮想環境 "django001" を設定)
$ pyenv versions
　　system
    anaconda2-4.3.1
　　anaconda3-4.3.1
　* django001
 (# 指定したディレクトリに移動するだけで、自動的に virtualenv で作成した仮想環境に入ることができる)

<参考>
$ pyenv local --unset (# localの設定を解除)
$ pyenv uninstall django001 (# virtualenv で作成した仮想環境を削除)
```
(参照 3 - 7)
　- [HomebrewのインストールからpyenvでPythonのAnaconda環境構築までメモ]
(http://qiita.com/oct_itmt/items/2d066801a7464a676994)

　- [PATHを通すために環境変数の設定を理解する (Mac OS X)]
(http://qiita.com/soarflat/items/d5015bec37f8a8254380)

　- [pyenv-virtualenvでディレクトリ単位のpython環境構築]
(http://qiita.com/niwak2/items/5490607be32202ce1314)

　- [pyenvとanacondaを共存させる時のactivate衝突問題の回避策3種類]
(http://qiita.com/y__sama/items/f732bb7bec2bff355b69)

　- [食わず嫌いしてたpyenvを使ってみたら便利過ぎて腰を抜かした話]
(http://qiita.com/who_you_me/items/09f572c842b1c3fea015)

　- [pythonの開発環境の切り替え用に anyenv, pyenv, pyenv-virtualenv, anacondaを入れる流れ]
(http://takemikami.com/2016/10/20/python-anyenv-pyenv-pyenvvirtualenv-anaconda.html)

　- [新しいMacにいい感じのPython開発環境を作りたい]
(http://qiita.com/nakazonor/items/258496fc442f7937c478#_reference-40a15e06a5e731d455ef)


###8. conda と pip のアップデート
※ 以降、conda もしくは pip を使用して、手順 7 で作成した仮想環境に対し必要な Python ライブラリのインストールを行うが、その前に conda ならびに pip 自身をアップデートする

```Terminal:Terminal
$ pip install --upgrade pip
$ conda update -y conda (# ここでは使わないが、機械学習用ライブラリをインストールする際に使用する。詳細は下記記事を参照)
```
 (参照)
　-[【随時更新】pyenv + Anaconda (Ubuntu 16.04 LTS) で機械学習のPython開発環境をオールインワンで整える]
(http://blog.algolab.jp/post/2016/08/21/pyenv-anaconda-ubuntu/)

###9. Django のインストール
```Terminal:Terminal
$ cd mydjango
$ pip install django (# "mydjango" ディレクトリに Django の最新バージョンをインストール)
 <参考>
 (# "pip install django==1.10" でインストールするバージョンの指定が可能)

$ pip list (# Django がライブラリ一覧に表示されているか確認)
　 Django (1.11)
　 pip (9.0.1)
　 setuptools (27.2.0)
　 wheel (0.29.0)
```
 (参照)
　- [0からのDjango開発環境構築から基本操作まで]
(http://qiita.com/tonkatu05/items/d0422a2050d669c72f54)


以上で完了です。