【エラー対処】pyenvでinstallができなくなった


# はじめに


[以前pyenv, pyenv-virtualenvをインストールした記事](https://qiita.com/ganariya/items/c1f5eccbebbfdfa74f9a)を書いており、
これからはAnaconda依存ではなくバージョンごとに環境が変えられるなぁ〜と思っていました。

しかし、すぐさまエラーが発生してしまいました。
原因は複数考えられますが

1. 先日、Macのアカウント名を変更した（調べれば分かりますが、結構面倒で、アカウント変更後も不具合が多く出て、修復に大事時間が取られました。）
2. bashをやめてfishにした。

が大きな要素かと思っています。

# エラー内容

```
pyenv install 3.7.3
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.3.tar.xz...
-> https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
Installing Python-3.7.3...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

BUILD FAILED (OS X 10.14.5 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/q0/x66vgv1s6d1bf5rh1b0f79cc0000gn/T/python-build.20190909205347.67210
Results logged to /var/folders/q0/x66vgv1s6d1bf5rh1b0f79cc0000gn/T/python-build.20190909205347.67210.log

Last 10 log lines:
  File "/var/folders/q0/x66vgv1s6d1bf5rh1b0f79cc0000gn/T/tmpqib00zdi/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/cli/cmdoptions.py", line 22, in <module>
  File "/var/folders/q0/x66vgv1s6d1bf5rh1b0f79cc0000gn/T/tmpqib00zdi/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/utils/hashes.py", line 10, in <module>
  File "/var/folders/q0/x66vgv1s6d1bf5rh1b0f79cc0000gn/T/tmpqib00zdi/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/utils/misc.py", line 21, in <module>
  File "/var/folders/q0/x66vgv1s6d1bf5rh1b0f79cc0000gn/T/tmpqib00zdi/pip-19.0.3-py2.py3-none-any.whl/pip/_vendor/pkg_resources/__init__.py", line 35, in <module>
  File "/private/var/folders/q0/x66vgv1s6d1bf5rh1b0f79cc0000gn/T/python-build.20190909205347.67210/Python-3.7.3/Lib/plistlib.py", line 65, in <module>
    from xml.parsers.expat import ParserCreate
  File "/private/var/folders/q0/x66vgv1s6d1bf5rh1b0f79cc0000gn/T/python-build.20190909205347.67210/Python-3.7.3/Lib/xml/parsers/expat.py", line 4, in <module>
    from pyexpat import *
ModuleNotFoundError: No module named 'pyexpat'
make: *** [install] Error 1

```

pythonを新しくpyenvでinstallしようとすると、エラーが発生し

```
ModuleNotFoundError: No module named 'pyexpat'
```

がないと勧告されます。

# とりあえずfishをやめる

fishはbashと同じでシェルの仲間ですが、.bash_profileを読み込んでくれないそうです。
正確には、文法が異なる、といったほうが正しいのかもしれません。

よって、下記のコマンドでbashにデフォルトシェルを戻しました。

```
chsh -s /bin/bash
```

chshはデフォルトシェルを変更するコマンドです。

# XcodeのCommandLineToolのBeta版を入れる


https://qiita.com/karon9/items/875b8a0053fa1c685386
のサイトを参考に

https://developer.apple.com/download/more/?=command%20line%20tools

からCommand Line Tools for Xcode Betaの最新版をダウンロード・インストールする。

その結果

```
ganariya$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
package-id: com.apple.pkg.CLTools_Executables
version: 11.0.0.0.1.1565314599
volume: /
location: /
install-time: 1568031534
groups: com.apple.FindSystemFiles.pkg-group 
```

となり、バージョンが上がり

```

ganariya$ pyenv install 3.7.3
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Installing Python-3.7.3...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.7.3 to /usr/local/var/pyenv/versions/3.7.3

```

無事インストール完了できた。うれしい。

# まとめ

Fishを使うとBashの.bash_profileがきちんと読み込めない。
（これは、文法がちがうため）

また、MacでCommand Lineツールのエラーで上記のエラーが出るので新しいバージョンを入れればきちんとインストールできる。

(ただ、もともとはうまく言ってて、アカウント名を変更したらこうなったので、多分アカウント名の変更時になんか変な事になってたんだと思う。)