Macに0からpyenv + pyenv-virtualenvでpython環境を作る

#はじめに
これは以下の人に向けた記事です。
~~また、まっさらなPCが手に入ったので、環境構築ついでの個人的な備忘録でもあります。~~

* macで初めてpython環境を作る人
* いろんな記事を見て、python環境作ったはいいけれど仮想環境作りたいと思い立った人

ホントは「Re: ゼロから始めるPython環境構築」みたいなタイトルにしようかとも思った笑

#pyenv-virtualenvを使う理由
これは個人的な意見なので、参考程度にしてください。

* ディレクトリごとにpythonのバージョンと環境を切り替えられる
* ターミナルの前に仮想環境の名前がつくのがちょっとカッコいい(小並感)

#pyenvとpyenv-virtualenvのインストール
##Homebrew使ってインストールしていきます
###Homebrewのインストール
細かいことは以下の記事参照
[Homebrewのインストール](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)
一応、やるべきことだけここに書いておきます。
以下のコードをターミナルから実行してください。

```
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```

パスワードとか聞かれるので入力してください。
一通り実行終わったら以下のコードでインストールが完了しているかを確認してください

```
$ brew -v
```

下のような出力が出てきたらひとまずオッケー！

```
Homebrew 2.3.0
Homebrew/homebrew-core (git revision 024a2; last commit 2020-06-05)
```

###pyenvとpyenv-virtualenvのインストール
インストールしたbrewを使って、pyenvとpyenv-virtualenvのインストールしていく。
以下をターミナルに打ち込む

```
$ brew install pyenv pyenv-virtualenv
```

なんかいっぱいビールのマーク(🍺)が出てきたらオッケー！
この後パスを通す必要があるので、パス関連がよくわからない人は下のコードをひとまずコピーして実行してください。
そして後でパスについてしっかり調べてください。

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

一応、書かれているか以下で確認

```
$ cat ~/.bash_profile
export PYENV_ROOT="${HOME}/.pyenv"
export PATH="${PYENV_ROOT}/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
```

ここまでいったらpyenvとpyenv-virtualenvのインストールの完了

#pyenvを使ってpythonのインストール

```
$ pyenv install 3.7.3
```

上記のような感じでpythonのインストールをします。
3.7.3以外のバージョンをインストールしたいときは3.7.3の部分を任意に変えてください。
例: `$ pyenv install 3.6.3`

インストールしたバージョンの確認をする。

```
$ pyenv versions
* system (set by /Users/hoge/.pyenv/version)
  3.6.3
  3.7.3
```

*(アスタリスク)がついてるやつがそのディレクトリにおけるpythonのバージョンです。

#pyenvを使ってpythonのバージョンの切り替え
以下のどっちかのコマンドでpythonのバージョンを切り替える。

* `pyenv global hoge`
* `pyenv local hoge`

shellとかもあるけど、ひとまずはこの2つでいいと思う。
globalは全体、localはカレントディレクトリに適用されます。

例:

```
$ pyenv global 3.7.3
$ python
Python 3.7.3 (default, Jun  5 2020, 11:54:20)
[Clang 11.0.0 (clang-1100.0.33.8)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

$ pyenv global 3.6.3
$ python
Python 3.6.3 (default, Jun  5 2020, 11:58:03)
[GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.33.8)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
```

これでバージョンの切り替えができるようになりました。

#pyenv-virtualenvで仮想環境の構築
pyenv-virtualenvを使って仮想環境を構築します。
新しい仮想環境の構築は`pyenv virtualenv[pythonのバージョン] [仮想環境名]`で行う。
例:

```
$ pyenv virtualenv 3.6.3 test
Requirement already satisfied: setuptools in /Users/hoge/.pyenv/versions/3.6.3/envs/test/lib/python3.6/site-packages
Requirement already satisfied: pip in /Users/hoge/.pyenv/versions/3.6.3/envs/test/lib/python3.6/site-packages
```

仮想環境ができたかの確認

```
$ pyenv versions
  system
* 3.6.3 (set by /Users/hoge/.pyenv/version)
  3.6.3/envs/test
  3.7.3
  test
```

ここまでできたら仮想環境の構築は完了

#仮想環境の切り替え
上記で作った仮想環境を切り替えていく。

```
$ pyenv global test
(test) hoge:~ fuge$
```

仮想環境の名前がターミナルの先頭につきます。
`pyenv local [hoge]`でディレクトリ毎に仮想環境を切り替えて使ってください。

#参考
[Homebrewのインストール](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)
[Mac(Homebrew)でPython(pyenv/virtualenv)開発環境を作る](https://qiita.com/its/items/24f8b20aa2106819dfb3)
[pyenv と pyenv-virtualenv で環境構築](https://qiita.com/Kodaira_/items/feadfef9add468e3a85b)