目的
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. Runbrew 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エラーを修正する方法