anyenvとpyenvでPythonをインストールする

# 最終更新日

2020年10月14日

検証を行ったmacOSのバージョンは下記です。

- macOS Catalina 10.15.7

インストールするもののバージョンは下記です。

- anyenv 1.1.2
- pyenv 1.2.21
- Python 3.9.0

> この記事が古くなった場合、下記の手順は最新のインストール手順とは異なっている可能性があります。

# そもそも、pyenvを使うか否か？
以前の僕はpyenvを使う派でした。しかし、今はなるべく使わない派になっています。なぜかというと、pyenvはトラブル解決の難易度が高いからです。

「pyenv 動かない」「pyenv doesn't work」でググると、ブログやStack Overflowが数多くヒットします。つまり、それだけトラブルが多いことを意味するのでしょう。

更に、記事によって解決方法がかなり異なります。つまり、不具合の原因となる要素が多いのでしょう。

問題を自分で解決する自信がある場合は、pyenvを使ってもいいと思います。しかし、少なくともPython初心者には、pyenvはおすすめしません。

このことを念頭において、以下の記事を読んでください。

# 事前にインストールが必要なもの
- Homebrew
    - [公式サイト](https://brew.sh/index_ja)に書かれているコマンドでインストール
- Xcode Command Line Tools
    - Homebrewインストール時に一緒にインストールされるので、特に作業は必要なし

# anyenv
## インストール
(1) ターミナルで `brew install anyenv` を実行してください。

```bash
$ brew install anyenv
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
==> Updated Casks
skype

==> Downloading https://homebrew.bintray.com/bottles/anyenv-1.1.2.catalina.bottl
Already downloaded: /Users/tada/Library/Caches/Homebrew/downloads/7d50622dafb1cbbc172af5158125cd4e6d137d7c05615a6e90739ffda9204241--anyenv-1.1.2.catalina.bottle.tar.gz
==> Pouring anyenv-1.1.2.catalina.bottle.tar.gz
🍺  /usr/local/Cellar/anyenv/1.1.2: 23 files, 29.9KB
```

(2) `anyenv init` を実行してください。

```bash
$ anyenv init
# Load anyenv automatically by adding
# the following to ~/.zshrc:

eval "$(anyenv init -)"
```

(3) ~/.zshrcに下記の記述を追記してください。

```bash
eval "$(anyenv init -)"
```

> ~/.zshrcを直接編集してもいいですし、 `echo 'eval "$(anyenv init -)"' >> ~/.zshrc` を実行してもOKです。

(4) `source ~/.zshrc` を実行、またはターミナルを再起動してください。

```bash
$ source ~/.zshrc
```

> これは任意ですが、 `anyenv update` のインストールもおすすめします。詳細は[GitHub](https://github.com/znz/anyenv-update)を確認してください。

## 確認
(1) `anyenv install -l` を実行して、下記のように表示されれば成功です。

```bash
$ anyenv install -l
  Renv
  crenv
  denv
  erlenv
  exenv
  goenv
  hsenv
  jenv
  jlenv
  luaenv
  nodenv
  phpenv
  plenv
  pyenv
  rbenv
  sbtenv
  scalaenv
  swiftenv
  tfenv
```

# pyenv
## インストール
(1) `anyenv install pyenv` を実行してください。

```bash
$ anyenv install pyenv
/var/folders/fy/48r10wdn7mx2629zngd9zsnh0000gn/T/pyenv.20201014093919.65856 ~
Cloning https://github.com/pyenv/pyenv.git master to pyenv...
Cloning into 'pyenv'...
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 18370 (delta 3), reused 10 (delta 2), pack-reused 18351
Receiving objects: 100% (18370/18370), 3.70 MiB | 2.36 MiB/s, done.
Resolving deltas: 100% (12507/12507), done.
~

Install pyenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
```

(2) ターミナルを再起動してください。

## 確認
(1) `pyenv install -l` を実行してください。下記のように表示されれば成功です。

```bash
$ pyenv install -l
Available versions:
  2.1.3
  (中略)
  3.9.0
  (中略)
  stackless-3.7.5
```

# Python
## インストール
(1) `pyenv install 3.9.0` を実行してください。

```bash
$ pyenv install 3.9.0
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.0.tar.xz...
-> https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tar.xz
Installing Python-3.9.0...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.9.0 to /Users/tada/.anyenv/envs/pyenv/versions/3.9.0
```

(2) `pyenv versions` を実行してください。Python 3.9.0がインストールされたことが確認できます。

```bash
$ pyenv versions
* system (set by /Users/tada/.anyenv/envs/pyenv/version)
  3.9.0
```

(3) `pyenv global 3.9.0` を実行してください。

```bash
$ pyenv global 3.9.0
```

(4) ターミナルを再起動してください。

## 確認
(1) `python --version` を実行してください。 `Python 3.9.0` と表示されれば成功です。

```bash
$ python --version
Python 3.9.0
```