1. ホーム
  2. python

[解決済み] インストール後、awscli がパスに追加されない

2023-06-01 10:19:41

質問

Amazonの公式の案内に従ってaws cliをインストールしました。

sudo pip install awscli

しかし aws は私のパスのどこにも見当たりません。インストールは成功したようです。にあるファイルがいくつかあります。 /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli という名前の実行ファイルがありますが aws . 私のpythonのバージョンは3.3.4で、私のpipのバージョンは1.5.4で、OS X 10.9上でこのコマンドを実行しています。何が間違っているのでしょうか?

ありがとうございます!

どのように解決するのですか?

OPの回答を改善する

OP は自分自身の質問に答えましたが、実行ファイルの正確な場所は、同じであるよりも異なっている可能性の方が高いです。そこで、彼の解決策がうまくいった理由を説明し、それを自分自身に適用できるようにしましょう。

問題から

<ブロッククオート

にあるいくつかのファイルが /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli には多くのファイルがありますが、awsという名前の実行ファイルはありません。

から 解答

<ブロッククオート

解決策は /Library/Frameworks/Python.framework/Versions/3.3/bin を私のPATHに追加することでした。

何かを学ぼう

それらのパスを比較し、共通点を見つける。

/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
/Library/Frameworks/Python.framework/Versions/3.3/bin

で分岐していることに注意してください。 lib vs. bin . そして、OPが、"と述べていることを考慮してください。 aws という名前の実行可能ファイルはありません。 と述べていることを考慮してください。

  • 実行可能ファイルは lib フォルダーにない傾向があります。
  • を探します。 bin フォルダーを探します。

この場合、私は以下のものを探すことを提案しました。 bin フォルダーを経由して探すことを提案しました。

find /Library/Frameworks/Python.framework -type d -name bin

しかし、そんなことをするならば、実行ファイルを経由して検索した方が良いのでは?

find /Library/Frameworks/Python.framework -type f -perm -100 -name aws
# the `-` in `perm -100` means not an exact match of 100
# but any octal that includes 100

でも、ちょっと待って

どうしてOPは、彼らの /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/ ?

最も簡単な答えは、私たちの次の学習レッスンでもあります。

  • python にどこに何がインストールされているか聞いてみてください。

以下はその方法です。

$ python -c 'import awscli; print(awscli)'
<module 'awscli' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/awscli/__init__.pyc'>

$ python3 -c 'import awscli; print(awscli)'
<module 'awscli' from '/System/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/awscli/__init__.py'>

私は2匹のパイソンを持っていますが、どちらもOPと同じパス、あるいはパスパターンを使っていません。

学習したことを適用する

$ find /System/Library/Frameworks/Python.framework -type d -name bin
/System/Library/Frameworks/Python.framework/Versions/2.7/bin
/System/Library/Frameworks/Python.framework/Versions/3.6/bin

$ find /System/Library/Frameworks/Python.framework -type f -perm -100 -name aws
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/aws
/System/Library/Frameworks/Python.framework/Versions/3.6/bin/aws

見ての通り、2つの bin フォルダーと、2つの aws の実行ファイルです。私はおそらくPython3.6バージョンを使いたいのでしょう。しかし、もし私がPython2.7バージョンを使っているリモートシステムのためにローカルで試行錯誤をしているのであれば、そちらを使いたいと思うでしょう。そして、これはまさに私が2バージョンをインストールしている理由です。