it-swarm.com.de

awscli wird nach der Installation nicht zum Pfad hinzugefügt

Ich habe das aws cli gemäß den offiziellen Amazon-Anweisungen installiert. 

Sudo pip install awscli

aws ist jedoch nirgends in meinem Pfad zu finden. Die Installation scheint erfolgreich gewesen zu sein. Es gibt eine Reihe von Dateien unter /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli, jedoch keine ausführbaren Dateien mit dem Namen aws. Meine Python-Version ist 3.3.4, meine Pip-Version ist 1.5.4 und dieser Befehl wird unter OS X 10.9 ausgeführt. Was könnte falsch sein?

Vielen Dank!

48
Max

Verbesserung der Antwort des OP

Das OP hat auf seine eigene Antwort geantwortet, aber der genaue Ort der ausführbaren Datei ist wahrscheinlich anders als derselbe. Also, lass uns zusammenarbeiten, WARUM seine Lösung funktioniert, damit du sie auf dich selbst anwenden kannst.

Aus dem problem

Es gibt eine Reihe von Dateien unter /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli, jedoch keine ausführbaren Dateien mit dem Namen aws.

Von der Lösung

Die Lösung bestand darin, /Library/Frameworks/Python.framework/Versions/3.3/bin zu meinem PATH hinzuzufügen.

Lass uns etwas lernen

Vergleichen Sie diese Pfade, um ihre Gemeinsamkeit zu finden:

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

Beachten Sie, dass sie bei lib und bin voneinander abweichen. Und bedenken Sie, dass das OP erklärte: "es gibt keine ausführbaren Dateien mit dem Namen aws." Dies bringt uns zu unseren ersten Lernstunden:

  • Ausführbare Dateien befinden sich normalerweise nicht in lib-Ordnern.
  • Suchen Sie nach bin-Ordnern, die eine gemeinsame Linie haben.

In diesem Fall hätte ich vorgeschlagen, nach bin-Ordnern zu suchen:

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

Wenn Sie das tun, können Sie aber auch einfach nach Ihrer ausführbaren Datei suchen:

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

Aber warte

Woher wusste die OP, dass sie in ihrem /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/ aussehen sollte?

Die einfachste Antwort ist auch unsere nächste Lernstunde:

  • Fragen Sie Ihren Python, wo Dinge installiert sind.

So mache ich das:

$ 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'>

Ich habe 2 Pythons und keiner von ihnen verwendet die gleichen Pfade oder Pfadmuster wie das OP.

Wenden Sie an, was wir gelernt haben

$ 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

Wie Sie sehen können, habe ich 2 bin-Ordner und 2 aws-ausführbare Dateien. Ich möchte wahrscheinlich die Python3.6-Version verwenden. Wenn ich jedoch lokale Test- und Fehlerarbeiten für ein Remote-System durchführe, das die Python2.7-Version verwendet, möchte ich dies verwenden. Und genau deshalb habe ich 2 Version installiert.

81
Bruno Bronosky

Von http://docs.aws.Amazon.com/cli/latest/userguide/cli-install-macos.html#awscli-install-osx-path

Bei Modern macos/OSX müssen Sie Ihr ~/Library/Python/$version/bin-Verzeichnis suchen und es Ihrem $PATH hinzufügen. Dies hilft Ihnen bei der Suche nach demjenigen, auf dem aws installiert wurde.

$ ls -d ~/Library/Python/*/bin/aws
/Users/bbronosky/Library/Python/3.6/bin/aws

Daraufhin habe ich diese Zeile zu meinem .bashrc hinzugefügt.

export PATH=$HOME/Library/Python/3.6/bin:$PATH
33
Bruno Bronosky

Das funktionierte für mich auf Mac:

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

Die Lösung war hinzuzufügen

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

zum meine PFAD. 

9
Max

Auf Ubuntu und mit pip3 ohne Sudo installiert, war der richtige Ort, um meinen Pfad hinzuzufügen, ~/.local/bin:

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

Ich habe ein Upgrade von OSX 10.7 auf OSX 10.9 durchgeführt und danach funktionierte meine Installation von aws nicht mehr.

Ich habe Fehler wie folgt beobachtet:

$ 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

Die Lösung, bei der das Betriebssystemupgrade Berechtigungen geändert hat.

Werbegeschenk Hinweis:

Sudo pip <--- hat funktioniert

pip <--- fehlgeschlagen

Also habe ich das gemacht:

Sudo chmod -R a+r /Library/Python/

und danach kann ich die aws-befehle wieder verwenden.

Ich bin mir nicht sicher, ob das etwas ist, das für andere hilfreich ist, aber ich dachte, ich würde es in den Mix werfen.

3
Bill Mitchell

Bei der Installation in einer virtuellen Umgebung: 'pip install awscli' (ohne Sudo) funktionierte gut unter OS X; aber nicht auf CentOS-Release 6.6, z. 'was aws' fand nichts. Die Lösung:

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

Kann pip show awscli verwenden, um den Installationsort zu finden.

$ 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:
1
wltheng

Normalerweise kopiere ich die ausführbare Datei nach/usr/local/bin

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

Windows ist wahrscheinlich die Minderheit hier, aber das Hinzufügen unten zu meinem PATH hat für mich funktioniert. Als Referenz habe ich die CLI via pip installiert:

C:\Python27\Scripts
0
BRass

überprüfen Sie Ihre python Version, aber ich vermute, Sie verwenden python 3.3

exportieren Sie PATH = $ HOME/Library/Python/3.3/bin: $ PATH

0
lukelan

Bearbeiten Sie die paths-Datei direkt, wenn Sie über Administratorrechte verfügen.

Wenn Sie nicht über Administratorrechte verfügen, sollten Sie auf jeden Fall die oberste Antwort eingeben. Wenn Sie jedoch keine Administratorrechte haben, würde ich dringend empfehlen, die paths-Dateien direkt zu bearbeiten, die sich unter /etc/paths befinden. 

Verwenden Sie Ihren bevorzugten Editor und fügen Sie einfach den gewünschten Pfad in eine neue Zeile ein:

paths-Beispieldatei:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Users/username/Library/Python/3.6/bin #new path added here at bottom of file

Fügen Sie oben oder unten oder in der Reihenfolge ein, in der die Standorte nach Binärdateien durchsucht werden sollen (falls Binärdateien mit doppelten Namen vorhanden sind). 

Die Verwendung der Datei paths erspart Ihnen die Mühe, sich an die Verkettungssyntax zu erinnern, oder die potenziellen Probleme, wenn Sie eine fehlerhafte Exportanweisung schreiben.

0
Govind Rai

Ich hatte ein ähnliches Problem unter Windows 10. Ich musste unten PATH-Variablen hinzufügen

Für Python :

C:\Users\kumar\AppData\Local\Programs\Python\Python37\  

FürPIP:

C:\Users\kumar\AppData\Local\Programs\Python\Python37\Scripts\

Für awscli zur Arbeit:

C:\Users\kumar\AppData\Roaming\Python\Python37\Scripts
0
kmahankali