Awscli не добавлен в путь после установки

Я установил aws cli в соответствии с официальными адресами Amazon.

sudo pip install awscli

Однако aws нигде не встречается на моем пути. Установка, похоже, прошла успешно. Существует несколько файлов, расположенных в /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli, однако нет исполняемых файлов с именем aws. Моя версия python - 3.3.4, моя версия - 1.5.4, и эта команда выполняется в OS X 10.9. Что может быть неправильным?

Спасибо!

Ответ 1

Улучшение ответа OP

Ответ OP отвечал на их собственный ответ, но точное местоположение исполняемого файла, скорее всего, будет отличаться от того, что оно будет одинаковым. Итак, позвольте сломать ПОЧЕМУ его решение работает, чтобы вы могли применить его к себе.

Из задачи

Существует несколько файлов, расположенных в /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli, однако нет исполняемых файлов с именем aws.

Из решение

Решение заключалось в том, чтобы добавить /Library/Frameworks/Python.framework/Versions/3.3/bin в мой PATH.

Выучить что-то

Сравните эти пути, чтобы найти их общность:

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

Обратите внимание, что они расходятся в lib vs. 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, где все установлено.

Вот как я это делаю:

$ 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 версии.

Ответ 2

Это работает для меня на Mac:

sudo -H pip install awscli --upgrade --ignore-installed six

Ответ 3

От 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

Ответ 4

На Ubuntu и установленном с pip3 без sudo, правильное расположение для добавления к моему пути было ~/.local/bin:

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

Ответ 5

Решение заключалось в том, чтобы добавить

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

к моей ПУТЬ.

Ответ 6

Можно использовать 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:

Ответ 7

Я обновил с 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

Решение о том, что обновление операционной системы изменило разрешения.

Поисковая подсказка:

sudo pip < --- работал

pip < --- failed

Итак, я сделал это:

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

а затем я снова смогу использовать команды aws.

Не уверен, что это будет полезно для других, но подумал, что я брошу его в микс.

Ответ 8

При установке в virtualenv: "pip install awscli" (без sudo) отлично работает на OS X; но не на выпуске CentOS 6.6, например. "который ничего не нашел". Решение:

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

Ответ 9

Отредактируйте файл paths напрямую, если у вас есть права администратора.

Определенно переходите к главному ответу, если у вас нет прав администратора, но если вы это сделаете, я бы настоятельно рекомендовал напрямую редактировать файлы paths, расположенные в /etc/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 избавляет вас от необходимости запоминать синтаксис конкатенации или потенциальную проблему, если вы пишете ошибочную инструкцию экспорта.

Ответ 10

Обычно я копирую исполняемый файл в /usr/local/bin

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

Ответ 11

Windows, скорее всего, является меньшинством, но добавление ниже моего PATH сработало для меня. Для справки я установил CLI через pip:

C:\Python27\Scripts

Ответ 12

У меня была похожая проблема в 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

Ответ 13

проверьте версию Python, но я догадался, что вы используете Python 3.3

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

Ответ 14

Альтернативный способ - установить пакет aws-cli с помощью методов, найденных на https://cloudacademy.com/blog/how-to-use-aws-cli/. Это сработало для меня :)