web-dev-qa-db-fra.com

awscli non ajouté au chemin après l'installation

J'ai installé le aws cli selon les instructions officielles d'Amazon. 

Sudo pip install awscli

Cependant, aws est introuvable sur mon chemin. L'installation semble avoir été réussie. Il y a un certain nombre de fichiers situés à /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli, mais il n'y a aucun exécutable nommé aws. Ma version de python est la version 3.3.4, ma version de pip est la version 1.5.4 et l'exécution de cette commande sous OS X 10.9. Quel pourrait être le problème?

Merci!

48
Max

Améliorer la réponse du PO

Le PO a répondu à sa propre réponse, mais l'emplacement exact de l'exécutable est plus susceptible d'être différent que d'être identique. Décrivons donc POURQUOI sa solution a fonctionné afin que vous puissiez l'appliquer à vous-même.

Du problème

Il y a un certain nombre de fichiers situés à /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli, mais il n'y a aucun exécutable nommé aws.

De la solution

La solution consistait à ajouter /Library/Frameworks/Python.framework/Versions/3.3/bin à my PATH.

Apprenons quelque chose

Comparez ces chemins pour trouver leur point commun:

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

Notez qu'ils divergent à lib vs bin. Et considérez que le PO a déclaré: "il n’existe pas de fichiers exécutables nommés aws.}"

  • Les exécutables ont tendance à ne pas se trouver dans les dossiers lib.
  • Recherchez les dossiers bin qui partagent une lignée commune.

Dans ce cas, j'aurais suggéré de rechercher les dossiers bin via:

find /Library/Frameworks/Python.framework -type d -name bin

Mais si vous voulez le faire, vous pouvez aussi bien chercher votre exécutable via:

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

Mais attendez

Comment OP a-t-il su regarder dans son /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/?

La réponse la plus simple est également notre prochaine leçon d’apprentissage:

  • Demandez à votre python où les choses sont installées.

Voici comment je fais ça:

$ 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'>

J'ai 2 Pythons et aucun d'entre eux n'utilise les mêmes chemins ni les mêmes modèles de chemins que l'OP.

Appliquer ce que nous avons appris

$ 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

Comme vous pouvez le constater, j’ai 2 dossiers bin et 2 exécutables aws. Je veux probablement utiliser la version Python3.6. Toutefois, si j'effectue des essais et des erreurs sur un système distant pour un système distant utilisant la version Python2.7, je souhaite l'utiliser. Et c'est exactement pourquoi j'ai 2 version installée.

81
Bruno Bronosky

De http://docs.aws.Amazon.com/cli/latest/userguide/cli-install-macos.html#awscli-install-osx-path

Pour macos modernes/OSX, vous devez trouver votre répertoire ~/Library/Python/$version/bin et l’ajouter à votre $PATH. Cela vous aidera à localiser celui où aws a été installé.

$ ls -d ~/Library/Python/*/bin/aws
/Users/bbronosky/Library/Python/3.6/bin/aws

Donc, basé sur cela, j'ai ajouté cette ligne à mon .bashrc

export PATH=$HOME/Library/Python/3.6/bin:$PATH
33
Bruno Bronosky

Cela a fonctionné pour moi sur mac:

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

La solution était d'ajouter

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

à la mon chemin. 

9
Max

Sur ubuntu et installé avec pip3 sans Sudo, l'emplacement correct à ajouter à mon chemin était ~/.local/bin:

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

J'ai mis à niveau d'OSX 10.7 à OSX 10.9 et, par la suite, mon installation d'aws ne fonctionnait plus.

J'ai observé des erreurs comme celle-ci:

$ 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

La solution pour la mise à niveau du système d'exploitation avait modifié les autorisations.

Indice cadeau:

Sudo pip <--- travaillé

pip <--- échoué

Alors j'ai fait ça:

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

et ensuite, je peux utiliser les commandes aws à nouveau.

Je ne suis pas sûr que ce soit utile pour les autres, mais je me suis dit que je le mettrais dans le même sac.

3
Bill Mitchell

Lors de l'installation dans virtualenv: 'pip install awscli' (sans Sudo) fonctionnait parfaitement sous OS X; mais pas sur la version 6.6 de CentOS, par ex. 'quel aws' n'a rien trouvé. La solution:

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

Peut utiliser pip show awscli pour trouver l'emplacement d'installation.

$ 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

Ce que je fais généralement est de copier le fichier exécutable dans/usr/local/bin

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

Windows est probablement la minorité ici, mais l'ajout ci-dessous à mon PATH a fonctionné pour moi. Pour référence, j'ai installé le CLI via pip:

C:\Python27\Scripts
0
BRass

vérifiez votre version de python mais je suppose que vous utilisez python 3.3

export PATH = $ HOME/Bibliothèque/Python/3.3/bin: $ PATH

0
lukelan

Editez le fichier paths directement si vous avez les droits d’administrateur.

Si vous ne disposez pas des droits d’administrateur, choisissez la réponse la plus fréquente, mais dans ce cas, je vous recommande vivement de modifier directement les fichiers paths, situés à /etc/paths

Utilisez votre éditeur préféré et collez simplement le chemin souhaité sur une nouvelle ligne:

Exemple de fichier 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

Collez en haut ou en bas ou dans l'ordre de votre choix les emplacements recherchés pour les fichiers binaires (s'il existe des fichiers binaires avec des noms en double). 

L'utilisation du fichier paths vous évite d'avoir à mémoriser la syntaxe de concaténation ou le problème potentiel si vous écrivez une instruction d'exportation incorrecte.

0
Govind Rai

J'ai eu un problème similaire sur Windows 10. J'ai dû ajouter ci-dessous à PATH variables

Pour Python :

C:\Users\kumar\AppData\Local\Programs\Python\Python37\  

PourPIP:

C:\Users\kumar\AppData\Local\Programs\Python\Python37\Scripts\

Pour awscli travailler:

C:\Users\kumar\AppData\Roaming\Python\Python37\Scripts
0
kmahankali