Удосконалення відповіді ОП
Оператор відповів на власне запитання, але точне розташування виконуваного файлу, швидше за все, буде іншим, ніж таким самим. Отже, давайте розберемо ЧОМУ його рішення працювало, щоб ви могли застосувати його до себе.
З проблеми
Є кілька файлів, розташованих за адресою /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
, однак немає виконуваних файлів з іменем aws.
Рішенням було додати /Library/Frameworks/Python.framework/Versions/3.3/bin
до мого ШЛЯХУ.
Давайте чомусь навчимось
Порівняйте ці шляхи, щоб знайти їх спільність:
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
/Library/Frameworks/Python.framework/Versions/3.3/bin
Зверніть увагу, що вони розходяться на lib
проти bin
. І враховуйте, що в ОП зазначено: « немає виконуваних файлів з іменем aws». Це підводить нас до наших перших уроків навчання:
- Виконавчі
lib
файли, як правило, відсутні в папках.
- Шукайте
bin
папки, які мають спільний родовід.
У цьому випадку я б запропонував шукати bin
папки за допомогою:
find /Library/Frameworks/Python.framework -type d -name bin
Але, якщо ви збираєтеся це зробити, ви можете просто шукати свій виконуваний файл за допомогою:
find /Library/Frameworks/Python.framework -type f -perm -100 -name aws
Але почекай
Як ОП знав, як виглядати в них /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 Pythons, і жоден з них не використовує однакові шляхи або навіть шаблони шляхів, як 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 версії.