it-swarm.com.ru

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, моя версия pip 1.5.4, и я запускаю эту команду на OS X 10.9. Что может быть не так?

Спасибо!

48
Max

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

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

Из проблемы

В /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 против 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

Но ждать

Как ОП узнал, как выглядит их /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/?

Самый простой ответ - наш следующий учебный урок:

  • Спросите своего питона, где все установлено.

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

$ 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 Питона, и ни один из них не использует те же пути или даже шаблоны путей, что и ОП.

Примените то, что мы узнали

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

81
Bruno Bronosky

От 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
33
Bruno Bronosky

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

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

Решение было добавить

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

в мой путь. 

9
Max

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

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

Я обновил 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 chmod -R a+r /Library/Python/

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

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

3
Bill Mitchell

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

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

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

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

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

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

C:\Python27\Scripts
0
BRass

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

0
Govind Rai

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