0 votos

¿Por qué el shell ejecuta el Python incorrecto?

Vengo de un entorno Ubuntu, y ya que puedes configurar Python 3 para que sea la primera clase de Python en Ubuntu (es decir, llamas a python y obtienes Python 3), quería hacer lo mismo en el Mac que he empezado a usar.

Después de intentar señalar el /usr/bin/python enlace simbólico a /usr/bin/python3 y al ver que fallaba, investigué un poco y encontré que Apple pone algo de protección en /usr/bin que tiene que ser actualizado cambiando una bandera en el modo de recuperación, y no se recomienda generalmente . Así que pensé en crear un nuevo /usr/bin/local/python enlace a /usr/bin/python3 y eso funcionaría ya que /usr/bin/local/python viene antes que /usr/bin/python en el camino.

Esto es lo que he probado. Los resultados me tienen confundido.

username@Machine ~ % python --version
Python 2.7.18
username@Machine ~ % sudo rm /usr/local/bin/python
username@Machine ~ % sudo ln -s /usr/bin/python3 /usr/local/bin/python
username@Machine ~ % which python
/usr/local/bin/python
username@Machine ~ % python --version
Python 2.7.18
username@Machine ~ % echo $PATH
/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
username@Machine ~ % /usr/bin/python3 --version
Python 3.8.9
username@Machine ~ % ls -l /usr/local/bin/python
lrwxr-xr-x  1 root  wheel  16 Dec  9 12:37 /usr/local/bin/python -> /usr/bin/python3
username@Machine ~ % hash -r
username@Machine ~ % python --version
Python 2.7.18
username@Machine ~ % whence python   
/usr/local/bin/python

Debo añadir que estoy ejecutando zsh, y estoy acostumbrado a ejecutar bash. ¿Por qué no me aparece la versión 3.8.9 cuando ejecuto python --version o /usr/local/bin/python --version ?

2voto

Marc Wilson Puntos 146

Porque no has vuelto a la cáscara en la que te encuentras actualmente. Cualquiera de las dos cosas:

% hash -r

O reiniciar el shell.

/usr/bin/which no te dice lo que el shell va a hacer, porque no es un shell builtin... busca $PATH .

Si quieres saber qué va a hacer realmente el shell, utiliza whence que es un shell incorporado.

Dicho esto, ya que has decidido usar Homebrew, ¿por qué no estás usando el Python de Homebrew? Python 3.8.9 es el del CLT de Apple.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X