- MacOS Catalina
- Python 2.7.17
- bash
MacOS MojaveからCatalinaにバージョンアップしたところ、numpyがimportできなくなりました。
この状況を改善しつつ、併せて、Python 2系が、2020年1月でサポート終了とのことで遅ればせながらこの機会に 3.7.7 にバージョンアップしました。やり方を備忘録として、本記事に記します。
numpyがインポートできないことを示すエラーメッセージ
$ python abc.py
Traceback (most recent call last):
File "abc.py", line 3, in <module>
import numpy as np
ModuleNotFoundError: No module named 'numpy'
Pythonのインストールを試みるもエラー
そこで、Python 3.7.7をインストールしてみようと試みましたが、エラーが表示されました。
$ pyenv install 3.7.7
(略)
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Qiitaの他の方の記事に、異なるバージョンのOSにおける同様の事例紹介を見つけました。
macOSアップデート後の『xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)...』の対処法
Xcode Command Line Toolsのインストール
Xcode Command Line Toolsが必要ということでインストールしました。
私の環境の場合、次のやり方でうまく進むことができました。
$ softwareupdate --list
Software Update Tool
Finding available software
Software Update found the following new or updated software:
* Label: Command Line Tools for Xcode-12.1
Title: Command Line Tools for Xcode, Version: 12.1, Size: 431272K, Recommended: YES,
$ softwareupdate --install -a
Software Update Tool
Finding available software
Downloading Command Line Tools for Xcode
Downloaded Command Line Tools for Xcode
Installing Command Line Tools for Xcode
Done with Command Line Tools for Xcode
Done.
pyenvのバージョンと .bash_profileの内容確認
このとき、pyenvのバージョンは次の通りです。
$ pyenv --version
pyenv 1.2.17
.bash_profile の中には以下のような記述が含まれていました。
(略)
PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
(略)
Python 3.7.7のインストール
あらためて、Python3.7.7をインストールしてみましたが、今度はインストールが完了しました。
$ pyenv install 3.7.7
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.7.tar.xz...
-> https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz
Installing Python-3.7.7...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.7.7 to /Users/ecru/.pyenv/versions/3.7.7
pyenv でインストールされている Python のバージョンを確かめます。そして、3.7.7をglobalに設定します。
$ pyenv versions
system
* 2.7.17 (set by /Users/ecru/.pyenv/version)
3.7.7
$ pyenv global 3.7.7
$ python -V
Python 3.7.7
こちらで、numpyがインポートできないことを示すエラーメッセージは表示されなくなり、abc.pyがターミナルで実行できるようになりました。
備忘録は以上です。