Algo muy malo está sucediendo con la configuración de mi entorno. Mientras intento aprender, decidí reinstalar Mac OSX El Capitan en mi Macbook Pro y comenzar a instalar y configurar cosas desde cero. El Shell que estoy usando es ZSH y lo he configurado un poco con Oh-My-ZShell.
Mi $PATH y Python:
~ ❯ echo $PATH
/Users/edchigliak/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/edchigliak/bin
~ ❯ python --version
Python 2.7.10
~ ❯
La captura de pantalla a continuación muestra claramente que hay dos Python2 instalados /usr/bin
y un Python3 casero /usr/local/bin
.
Aquí está el resultado de printenv
(solo entradas relacionadas con PATH y SHELL):
PATH=/Users/edchigliak/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/edchigliak/bin
PWD=/Users/edchigliak
SHELL=/usr/local/bin/zsh
SHLVL=2
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lRGo5iu4NA/Listeners
TERM=screen-256color
ZSH=/Users/edchigliak/.oh-my-zsh
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
_=/usr/bin/printenv
Primera entrada en mi.zshrc
:
export PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin
¡Muchas gracias!
Respuesta1
Sólo se considerarán los archivos binarios nombrados exactamente python
cuando escriba python
en el símbolo del shell.
Si desea python
ejecutar python3
, la forma más sencilla de hacerlo es establecer una función o alias en sus archivos de inicio de shell personales.
Absolutamente no debes mencionar python
todo python3
el sistema porque esto dañará algunos sistemas operativos y herramientas de terceros que requieren python
ser Python versión 2. Los dos son lenguajes (o dialectos, si lo prefieres) mutuamente incompatibles.
Para revisar lo que está sucediendo aquí, cuando escribe command
en el indicador, el shell recorre los directorios en su PATH
y busca un archivo ejecutable con el nombre exacto command
en cada uno, hasta que encuentra uno o se queda sin lugares para buscar. Simplemente ignorará cualquier archivo con otros nombres, incluso si fueran similares, como xcommand
o commandante
o command3.xx
. Si tiene un alias o una función, se usará en su lugar, aunque PATH
quizás luego se le consulte para localizar otros comandos llamados por su alias o función.
Respuesta2
El shell busca PATH paracoincidencias exactas. Cuando escribe python
, intenta encontrar un ejecutable coincidente ^python$
; ^python...$
no es lo mismo.
En su caso, podría ser que no haya Python en /usr/local/bin o tal vez haya un problema de permisos, lo que haría que se omita.
1) Si no hay python
en /usr/local/bin
:
Podría utilizar sudo ln -s /usr/local/bin/python3.6 /usr/local/bin/python
para crear un enlace suave python
que apunte al intérprete de Python que desea utilizar. Debido a que primero se busca su RUTA en /usr/local/bin, el shell ahora debería encontrar este enlace.
2) Si el archivo existe /usr/local/bin
pero no tieneejecutarpermiso, inténtalo sudo chmod a+x /usr/local/bin/python
.
No puedo pensar en otros problemas en este momento.