Macを買って最初にやるPython3環境構築

## MacbookでPython3を使うために最初に行う初期設定の紹介

### 環境
```shell
$ sw_vers
ProductName:	macOS
ProductVersion:	11.4
BuildVersion:	20F71
```

### コマンドラインツールのインストール
macを買って最初にやることはコマンドラインツールを導入すること。
Xcodeの導入を行う。これでターミナルからコマンドを使用することができる。
macOSのデフォルトであるターミナルで以下のコマンド打ち、インストールを始める。

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

### Homebrewのインストール
Homebrewというbrewコマンドでインストールしたものを管理してくれるパッケージマネージャーをインストールする。

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

https://brew.sh/index_ja

### pyenvのインストール
Homebrew(brew)でpyenvをインストールする。
pyenvはPythonのバージョンを管理してくれるもの。
複数のバージョンを使い分けたい場合にバージョンを競合させずに使用できる。

```shell
$ brew install pyenv
```

pyenvがインストールされたか確認

```shell
$ pyenv --version
```
pyenvのバージョンを確認できれば、インストール済み。

pyenvでPythonを使用するために環境変数の設定を行う。

```shell
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init --path)"\nfi' >> ~/.zshrc
```

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

```shell
$ pyenv install --list
```
listされたバージョンの中からインストールしたい任意のバージョンを、インストールする。
今回はpythonの3.10.2をインストールする。

```shell
$ pyenv install 3.10.2
```
インストールができたか確認する

```shell
$ pyenv versions      
  system
  3.10.2
  3.6.5
* 3.9.6 (set by /Users/sooshiro/.pyenv/version)
```
現在は python 3.9.6が選択されているので切り替えが必要。
アスタリスク(*)がある部分が使用しているバージョン

```shell
$ pyenv global 3.10.2
```

もう一度確認する。

```shell
$ python --version
  system
* 3.10.2 (set by /Users/sooshiro/.pyenv/version)
  3.6.5
  3.9.6

$ python -V
Python 3.10.2
```

3.10.2に切り替わったことが確認できる。
これで使用したいpythonバージョンを使えるようになる。

### venvの使用方法
venvはpythonの仮想環境を作成し、ローカルの環境とは独立させた環境を作成できる。
これにより、外部ライブラリを競合させずにそれぞれの環境で使用することが可能になる。
venvではpythonのバージョンは管理しない。(なのでpyenvで管理する)
pythonで使用する外部ライブラリのpip仮想環境を管理するものになる。

pip環境を確認する。

```shell
$ pip list
Package    Version
---------- -------
pip        22.0.3
setuptools 58.1.0
```

### pipの仮想環境作成

作成したい任意のディレクトリに移動する、もしくは作成する。
`work_dir`というディレクトリに移動

```shell
$ cd work_dir
もしくは
$ mkdir work_dir && cd $_
```

仮想環境の名前は任意に決めて`python3 -m venv`コマンドで作成する。
今回は`work_venv`という名前で作成する。

```shell
$ python3 -m venv work_venv
$ ls
work_venv
```

仮想環境を作成できたら、その環境をアクティベートする。

```shell
~/work_dir % source work_venv/bin/activate
(work_venv) ~/work_dir %
```

アクティベートできたら`(work_venv)`このように作成した環境名がコマンドラインで確認できる。
pip環境の確認をする。

```shell
$ pip list
Package    Version
---------- -------
pip        22.0.3
setuptools 58.1.0
```

試しにpip環境にライブラリをインストールしてみる。

```shell
$ pip install numpy

$ pip list
Package    Version
---------- -------
numpy      1.22.2
pip        22.0.3
setuptools 58.1.0
```

実際に使用できるか試してみる。

```python
$ python
Python 3.10.2 (main, Feb 27 2022, 21:51:48) [Clang 12.0.5 (clang-1205.0.22.11)] on darwin
>>> x = np.random.randint(1,10,(10))
>>> x
array([4, 5, 4, 9, 5, 4, 9, 8, 3, 2])
```

使用できることが確認できた。

### 元のpip環境に変更する時

`deactivate`コマンドを使う。

```shell
$ deactivate

(work_venv) ~/work_dir % deactivate 
~/work_dir % 
```

コマンドラインの先頭に付随していた`(work_venv)`が無くなった。
これでvenvで作成した`work_venv`環境から抜けることができた。
`pip list`で確認してみる。

```shell
$ pip list
Package    Version
---------- -------
pip        22.0.3
setuptools 58.1.0
```

`work_venv`環境では存在した`numpy`が無くなっていることがわかる。

以上でpythonを使用する準備は整った！
よき、PythonLifeを！！







### 参考文献
[[mac] pyenvを使った、pythonのinstall](https://zenn.dev/kenghaya/articles/9f07914156fab5)
[venv: Python 仮想環境管理](https://qiita.com/fiftystorm36/items/b2fd47cf32c7694adc2e)