Macにpythonをインストールしaws-cliが実行できない経緯と解決方法


目的

aws-cliを使用したく、pythonを入れて、公式のコマンドを実行しようとしても上手くできなかったので、その備忘録。
ちなみに数年前にanaconda3などをmacに入れた事があったが、その設定がかなり気に入らなかったので、それをアンインストールして、再度インストールしようとした時に問題が発生。
今回はhomebrewを利用してのインストールを試みた。
途中のPATHの設定は色々いじったので、記載を省略。

仕様

Macbook: MacOS High Sierra
Homebrew: 1.6.0

経緯

Pythonをインストール

homebrewを利用し、pythonをインストール
$ brew install python3

以下で正常にpythonがインストールできていることを確認
$ python3 --version
結果は以下

Python 3.6.5

正常にインストールする事ができた。

aws-cliをインストール

次にaws-cliをインストール
$ pip3 install aws-cli

以下を実行
$ aws --version

しかし結果

-bash: /usr/local/bin/aws: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory

インストールは成功したが、実行できない。

不具合調査・解決

以下でどうなっているのか確認
$ which aws
結果は以下

/usr/local/bin/aws

$ which python3
結果は以下

/usr/local/bin/python3

うーん、何故だ。。。
実行時に過去にインストールしたaws-cliが邪魔をしているみたいだ。
(anaconda3を入れる前に、インストールしてたかも…)

そもそもhomebrewのインストール時にエラーが出ていたのではと思い、以下で調査。
$ brew doctor
結果は以下

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run brew link on these:
awscli

やはり!brew linkと書いてあるので、$ brew link aws-cliを実行する。

Linking /usr/local/Cellar/awscli/1.15.0...
Error: Could not symlink bin/aws
Target /usr/local/bin/aws
already exists. You may want to remove it:
rm '/usr/local/bin/aws'
To force the link and overwrite all conflicting files:
brew link --overwrite awscli
To list all files that would be deleted:
brew link --overwrite --dry-run awscli

強制的にlinkしてもいいかなと思いましたが、仕様していないファイルはしっかり消したいので、
$ rm '/usr/local/bin/aws'
で削除を実行
再度$ brew link awscliを実行

Linking /usr/local/Cellar/awscli/1.15.0...
Error: Could not symlink bin/aws_completer
Target /usr/local/bin/aws_completer
already exists. You may want to remove it:
rm '/usr/local/bin/aws_completer'
To force the link and overwrite all conflicting files:
brew link --overwrite awscli
To list all files that would be deleted:
brew link --overwrite --dry-run awscli

が表示されたため、これも削除を実行する
$ rm '/usr/local/bin/aws_completer'

再々度$ brew link awscliを実行する

Linking /usr/local/Cellar/awscli/1.15.0... 6 symlinks created

できたっぽい!$ aws --versionで確認する

aws-cli/1.15.0 Python/3.6.5 Darwin/17.5.0 botocore/1.10.0

できたー!実際にこの後awsコマンドも正常に利用する事が可能となった。

まとめ

多分知っている人にとってはかなり初歩的な話であったと思う。
一番の原因はanacondaですでに入れており、それをアンインストールする際に色々残っていたのが原因と考える。
初めからCloud9を利用してやって入れば楽であったかも…
色々調べてPathの設定や、pythonについて理解を深める事ができたので良し。

以下のサイトが参考になりました。ありがとうございます。
MacでPythonが動かない状況をなんとか解決
Homebrewインストールのlinkエラーを修正する方法