python - mac - awscli no se agregó a la ruta después de la instalación
instalar aws cli windows (9)
Mejorando la respuesta del OP
El OP respondió su propia respuesta, pero la ubicación exacta del ejecutable es más probable que sea diferente de lo que es ser el mismo. Entonces, analicemos POR QUÉ funcionó su solución para que pueda aplicarla a usted mismo.
Del problema
Hay una serie de archivos ubicados en
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
, sin embargo, no hay ejecutables llamados aws.
De la solución
La solución fue agregar
/Library/Frameworks/Python.framework/Versions/3.3/bin
a mi PATH.
Aprendamos algo
Compare esos caminos para encontrar su comunidad:
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
/Library/Frameworks/Python.framework/Versions/3.3/bin
Tenga en cuenta que divergen en lib
vs. bin
. Y considere que el PO declaró, " no hay ejecutables llamados Aws " . Eso nos lleva a nuestras primeras lecciones de aprendizaje:
- Los ejecutables tienden a no estar en las carpetas de
lib
. - Busque carpetas
bin
que comparten un linaje común.
En este caso, habría sugerido buscar carpetas bin
través de:
find /Library/Frameworks/Python.framework -type d -name bin
Pero, si va a hacer eso, también podría buscar su ejecutable a través de:
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
Pero espera
¿Cómo supo saber OP en sus /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/
?
La respuesta más fácil es también nuestra próxima lección de aprendizaje:
- Pregúntale a tu pitón dónde están instaladas las cosas.
Aquí es cómo lo hago:
$ 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''>
Tengo 2 pitones y ninguno de ellos usa las mismas rutas o patrones de ruta que el OP.
Aplica lo que hemos aprendido
$ 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
Como puede ver, tengo 2 carpetas bin
y 2 aws
ejecutables. Probablemente quiera usar la versión de Python3.6. Sin embargo, si estoy haciendo un trabajo de prueba y error local para un sistema remoto que usa la versión de Python2.7, voy a querer usar eso. Y esta es exactamente la razón por la que tengo 2 versiones instaladas.
Instalé el aws cli de acuerdo con las instrucciones oficiales de Amazon.
sudo pip install awscli
Sin embargo, aws
no se encuentra en mi camino. La instalación parece haber sido exitosa. Hay una serie de archivos ubicados en /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
, sin embargo, no hay ejecutables llamados aws
. Mi versión de Python es 3.3.4, mi versión de pip es 1.5.4 y ejecuto este comando en OS X 10.9. ¿Qué podría estar mal?
¡Gracias!
Edite el archivo de paths
directamente si tiene derechos de administrador.
Definitivamente vaya con la respuesta superior si no tiene derechos de administrador, pero si lo hace, le recomiendo directamente la edición de los archivos de paths
, ubicados en /etc/paths
.
Usa tu editor favorito y simplemente pega la ruta deseada en una nueva línea:
Archivo de paths
muestra:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Users/username/Library/Python/3.6/bin #new path added here at bottom of file
Pegue en la parte superior o inferior o en el orden que desee las ubicaciones buscadas binarias (en el caso de que haya binarios con nombres duplicados).
El uso del archivo de paths
ahorra la molestia de recordar la sintaxis de concatenación o el problema potencial si escribe una declaración de exportación defectuosa.
Actualicé de OSX 10.7 a OSX 10.9 y luego, mi instalación de Aws ya no funcionó.
Observé errores como este:
$ 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 solución que la actualización del sistema operativo había cambiado permisos.
Pista de regalo:
sudo pip <--- trabajado
pip <--- fallido
Entonces hice esto:
sudo chmod -R a+r /Library/Python/
y luego, puedo usar los comandos aws nuevamente.
No estoy seguro si esto es algo que será útil para otros, pero pensé que lo lanzaría a la mezcla.
Al instalar en un virtualenv: ''pip install awscli'' (sin sudo) funcionó bien en OS X; pero no en la versión 6.6 de CentOS, p. ej., "que Aws" no encontró nada. La solución:
chmod u+x /PATH-TO-YOUR-VIRTUALENV/bin/aws
Desde http://docs.aws.amazon.com/cli/latest/userguide/cli-install-macos.html#awscli-install-osx-path
Para Modern macos / OSX, necesita encontrar su directorio ~/Library/Python/$version/bin
y agregarlo a su $PATH
. Esto lo ayudará a ubicar el que se instaló aws
.
$ ls -d ~/Library/Python/*/bin/aws
/Users/bbronosky/Library/Python/3.6/bin/aws
Entonces, basado en eso, agregué esta línea a mi .bashrc
export PATH=$HOME/Library/Python/3.6/bin:$PATH
Es probable que Windows sea la minoría aquí, pero agregar debajo a mi TRAYECTORIA funcionó para mí. Como referencia, instalé el CLI a través de pip:
C:/Python27/Scripts
Esto funcionó para mí en mac:
sudo -H pip install awscli --upgrade --ignore-installed six
La solución fue agregar
/Library/Frameworks/Python.framework/Versions/3.3/bin
al mi camino
Lo que normalmente hago es copiar el ejecutable a / usr / local / bin
cp $(find / -name aws) /usr/local/bin