問題
先日、久々に eb コマンド(Python で書かれている、 AWS ElasticBeanstalk の CLI ツール)を使おうとして、以下のエラーになった。
$ eb list zsh: /usr/local/bin/eb: bad interpreter: /usr/local/opt/python@2/bin/python2.7: no such file or directory
python コマンドを叩くと、 python 2.7 が入っていた
$ python --version Python 2.7.16
試しに、 pip --version
しても、 bad interpreter のエラーが出た
$ pip --version /Users/sakamoto/.pyenv/shims/pip: line 21: /usr/local/Cellar/pyenv/1.2.20/libexec/pyenv: No such file or directory
pyenv を使っていて、バージョンは 1.2.21
$ pyenv pyenv 1.2.21 $ pyenv versions system 3.4.3 * 3.6.5 (set by /Users/yoshiyuki_sakamoto/.pyenv/version)
何故か python3 コマンドの挙動もおかしい
$ python3 --version /Users/sakamoto/.pyenv/shims/python3: line 21: /usr/local/Cellar/pyenv/1.2.20/libexec/pyenv: No such file or directory
解決方法
自分が以前書いた記事を参考に、 python3 で aws と awsebcli をインストールしたいが、その前に python まわりが壊れているっぽいので治す。
pyenv の symlink がおかしくなっているようなので、 rahash してなおす。
$ pyenv rehash
これで、 python 周りの依存関係がきれいになった
# 何故か python コマンドだけは python2 のままだが... $ python --version Python 2.7.16 $ which python /usr/bin/python # python3 は pyenv のものになっている $ python3 --version Python 3.6.5 $ which python3 /Users/sakamoto/.pyenv/shims/python3 # pip コマンドは pyenv の python3 のものになっている $ pip --version pip 9.0.3 from /Users/sakamoto/.pyenv/versions/3.6.5/lib/python3.6/site-packages (python 3.6)
これで問題なく、 python3 コマンドと pip コマンドが叩けるようになったので、記事の通り aws と awsebcli を再インストールする。
$ pip install aws $ pip install awsebcli --upgrade --user
ちなみに以前の記事とはこちら