web-dev-qa-db-ja.com

インストール後にawscliがパスに追加されない

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で実行しています。何が問題なのでしょうか?

ありがとう!

65
Max

OPの回答の改善

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

libbinで分岐していることに注意してください。そして、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つの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つのバージョンがインストールされている理由です。

94
Bruno Bronosky

これはMacで私のために働いた:

Sudo -H pip install awscli --upgrade --ignore-installed six
49
dheeraj .A

から 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
38
Bruno Bronosky

UbuntuでSudoを使用せずにpip3でインストールした場合、パスに追加する正しい場所は~/.local/bin

export PATH=$HOME/.local/bin:$PATH
13
vlz

解決策は追加することでした

/Library/Frameworks/Python.framework/Versions/3.3/bin

私のパスに。

10
Max

使える 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:
4
wltheng

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コマンドを使用できます。

これが他の人に役立つかどうかはわかりませんが、私はそれをミックスに入れると考えました。

3
Bill Mitchell

Virtualenvにインストールする場合: 'pip install awscli'(Sudoなし)はOS Xで正常に機能しました。ただし、CentOSリリース6.6ではそうではありません。 「which aws」は何も見つかりませんでした。ソリューション:

chmod u+x /PATH-TO-YOUR-VIRTUALENV/bin/aws
1
Scott Lawton

私が通常行うことは、実行可能ファイルを/ usr/local/binにコピーすることです

cp $(find / -name aws) /usr/local/bin
1
Proximo

管理者権限がある場合は、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ファイルを使用すると、連結構文を覚える手間や、誤ったエクスポートステートメントを記述した場合の潜在的な問題を軽減できます。

1
Govind Rai

ここではWindowsがおそらく少数ですが、PATHに以下を追加するとうまくいきました。参考のため、pipを使用してCLIをインストールしました。

C:\Python27\Scripts
0
BRass

pythonバージョンを確認してください。ただし、python 3.3

export PATH = $ HOME/Library/Python/3.3/bin:$ PATH

0
lukelan

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
0
kmahankali