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は独自の回答に答えましたが、実行可能ファイルの正確な場所は、同じであるよりも異なる可能性が高くなります。それでは、自分のソリューションを自分に適用できるように、彼のソリューションが機能した理由を分析しましょう。
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
には多数のファイルがありますが、awsという名前の実行可能ファイルはありません。
解決策は、
/Library/Frameworks/Python.framework/Versions/3.3/bin
をmy PATHに追加することでした。
それらのパスを比較して、それらの共通点を見つけます。
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
/Library/Frameworks/Python.framework/Versions/3.3/bin
lib
対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 -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つのPythonを持っていますが、どちらも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つのバージョンがインストールされている理由です。
これはMacで私のために働いた:
Sudo -H pip install awscli --upgrade --ignore-installed six
から http://docs.aws.Amazon.com/cli/latest/userguide/cli-install-macos.html#awscli-install-osx-path
Modern macos/OSXの場合、~/Library/Python/$version/bin
ディレクトリを見つけて$PATH
に追加する必要があります。これは、aws
がインストールされているものを見つけるのに役立ちます。
$ ls -d ~/Library/Python/*/bin/aws
/Users/bbronosky/Library/Python/3.6/bin/aws
それに基づいて、この行を.bashrc
に追加しました
export PATH=$HOME/Library/Python/3.6/bin:$PATH
UbuntuでSudoを使用せずにpip3でインストールした場合、パスに追加する正しい場所は~/.local/bin
:
export PATH=$HOME/.local/bin:$PATH
解決策は追加することでした
/Library/Frameworks/Python.framework/Versions/3.3/bin
私のパスに。
使える pip show awscli
インストール場所を見つけます。
$ pip show awscli
Name: awscli
Version: 1.16.94
Summary: Universal Command Line Environment for AWS.
Home-page: http://aws.Amazon.com/cli/
Author: Amazon Web Services
Author-email: UNKNOWN
License: Apache License 2.0
Location: /root/.local/lib/python2.7/site-packages
Requires: s3transfer, colorama, rsa, docutils, botocore, PyYAML
Required-by:
OSX 10.7からOSX 10.9にアップグレードした後、awsのインストールが機能しなくなりました。
私はこのようなエラーを観察しました:
$ pip
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
working_set.require(__requires__)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
needed = self.resolve(parse_requirements(requirements))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: pip==1.5.5
オペレーティングシステムのアップグレードによって権限が変更されたソリューション。
プレゼントの手がかり:
須藤ピップ<---働いた
pip <---失敗しました
だから私はこれをやった:
Sudo chmod -R a+r /Library/Python/
その後、再びawsコマンドを使用できます。
これが他の人に役立つかどうかはわかりませんが、私はそれをミックスに入れると考えました。
Virtualenvにインストールする場合: 'pip install awscli'(Sudoなし)はOS Xで正常に機能しました。ただし、CentOSリリース6.6ではそうではありません。 「which aws」は何も見つかりませんでした。ソリューション:
chmod u+x /PATH-TO-YOUR-VIRTUALENV/bin/aws
私が通常行うことは、実行可能ファイルを/ usr/local/binにコピーすることです
cp $(find / -name aws) /usr/local/bin
paths
ファイルを直接編集します。管理者権限がない場合は間違いなくトップアンサーを使用しますが、そうする場合は、/etc/paths
にあるpaths
ファイルを直接編集することを強くお勧めします。
お気に入りのエディターを使用して、目的のパスを新しい行に貼り付けるだけです。
サンプルpaths
ファイル:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Users/username/Library/Python/3.6/bin #new path added here at bottom of file
上部または下部に貼り付けるか、任意の順序で任意の場所に貼り付けて、バイナリを検索します(名前が重複するバイナリがある場合)。
paths
ファイルを使用すると、連結構文を覚える手間や、誤ったエクスポートステートメントを記述した場合の潜在的な問題を軽減できます。
ここではWindowsがおそらく少数ですが、PATHに以下を追加するとうまくいきました。参考のため、pipを使用してCLIをインストールしました。
C:\Python27\Scripts
pythonバージョンを確認してください。ただし、python 3.3
export PATH = $ HOME/Library/Python/3.3/bin:$ PATH
Windows 10でも同様の問題が発生しました。PATH
変数に以下を追加する必要がありました。
Pythonの場合:
C:\Users\kumar\AppData\Local\Programs\Python\Python37\
[〜#〜] pip [〜#〜]:
C:\Users\kumar\AppData\Local\Programs\Python\Python37\Scripts\
awscliが機能する場合:
C:\Users\kumar\AppData\Roaming\Python\Python37\Scripts