Verbesserung der Antwort des OP
Das OP beantwortete seine eigene Frage, aber der genaue Speicherort der ausführbaren Datei ist mit größerer Wahrscheinlichkeit anders als derselbe. Lassen Sie uns also zusammenfassen, WARUM seine Lösung funktioniert hat, damit Sie sie auf sich selbst anwenden können.
Aus dem Problem
Es gibt eine Reihe von Dateien unter /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
, es gibt jedoch keine ausführbaren Dateien mit dem Namen aws.
Die Lösung bestand darin /Library/Frameworks/Python.framework/Versions/3.3/bin
, meinen Pfad hinzuzufügen .
Lass uns etwas lernen
Vergleichen Sie diese Pfade, um ihre Gemeinsamkeiten 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 auseinander gehen lib
vs. bin
. Und bedenken Sie, dass das OP sagte: " Es gibt keine ausführbaren Dateien mit dem Namen aws. " Das bringt uns zu unseren ersten Lektionen:
- 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 über:
find /Library/Frameworks/Python.framework -type d -name bin
Aber wenn Sie das tun, können Sie genauso gut nach Ihrer ausführbaren Datei suchen über:
find /Library/Frameworks/Python.framework -type f -perm -100 -name aws
Aber warte
Woher wusste OP, dass sie in ihre schauen sollten /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/
?
Die einfachste Antwort ist auch unsere nächste Lektion:
- Fragen Sie Ihren Python, wo die 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 sogar 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.