1 votos

El ejecutable CLI "Python" parece ignorar la jerarquía del camino

Tengo la siguiente situación extraña en mi (recién instalado El Capitán, por lo demás vacío) Mac.

Me di cuenta de que /usr/bin/python se ajusta por defecto a Python 2.7 (todavía), y el nuevo sistema de seguridad SIP me "protege" de sustituirlo por un enlace simbólico que apunta a python3 (que instalé en /usr/local/bin ). Me di cuenta de que /usr/local/bin aparece primero en el camino:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Así que pensé genial, añadiré un enlace simbólico en /usr/local/bin llamado python y apuntarlo a pitón3.

$ ls -al /usr/local/bin
...
lrwxr-xr-x   ... python -> /usr/local/bin/python3
lrwxr-xr-x   ... python3 -> ../Cellar/python3/3.5.0/bin/python3

Y esto se refleja en which

$ which python
/usr/local/bin/python

Pero cuando realmente lo uso, se remonta a la pitón nativa2.7

$ python --version
Python 2.7.10

¿Qué pasa? ¿Está OS X jugando con mi $PATH y no me lo dices? ¿Qué medidas puedo tomar para asegurarme de que sé qué comando se va a ejecutar realmente?

2voto

William T Froggard Puntos 2862

Intenta cerrar la ventana de la terminal y hacer una nueva. El shell sólo comprueba dónde se encuentran los comandos en el lanzamiento, y no vuelve a comprobar si cree saber dónde se encuentra el comando. Es un aumento de rendimiento en scripts, así que generalmente es una buena idea.

2voto

D. Ray Puntos 46

Si tu caparazón es un golpe, entonces puedes usar el type y hash para manipular su caché de rutas ejecutables (como se muestra en ¿Cómo puedo limpiar el caché de Bash de los caminos a los ejecutables? ):

# to clear the whole cache
hash -r

# to only remove one cached command
hash -d python

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