はじめに
以前pyenv, pyenv-virtualenvをインストールした記事を書いており、
これからはAnaconda依存ではなくバージョンごとに環境が変えられるなぁ〜と思っていました。
しかし、すぐさまエラーが発生してしまいました。
原因は複数考えられますが
- 先日、Macのアカウント名を変更した(調べれば分かりますが、結構面倒で、アカウント変更後も不具合が多く出て、修復に大事時間が取られました。)
- 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
のサイトを参考に
から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ツールのエラーで上記のエラーが出るので新しいバージョンを入れればきちんとインストールできる。
(ただ、もともとはうまく言ってて、アカウント名を変更したらこうなったので、多分アカウント名の変更時になんか変な事になってたんだと思う。)