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/. Это сработало для меня :)