El ejecutable CLI "python" parece ignorar la jerarquía de ruta

Tengo la siguiente situación extraña en mi Mac (recién instalada, El Capitán, si no vacía).

Observé que /usr/bin/python defecto python 2.7 (todavía), y el nuevo sistema de security SIP "me protege" de replacelo con un enlace simbólico para apuntar a python3 (que instalé en /usr/local/bin ). Noté que /usr/local/bin aparece primero en la ruta:

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

Así que pensé genial, solo agregaré un enlace simbólico en /usr/local/bin llamado python y lo señalaré a python3.

 $ 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 por which

 $ which python /usr/local/bin/python 

Pero cuando realmente lo uso, vuelve a la python nativa2.7

 $ python --version Python 2.7.10 

¿Lo que da? ¿OS X está retocando con mi $PATH y no diciéndome? ¿Qué pasos puedo dar para asegurarme de saber qué command realmente se ejecutará?

  • El command de terminal "abrir" para iniciar una aplicación en una pantalla de monitor específica
  • ¿Puedo crear un acceso directo / alias de escritorio a una carpeta desde la Terminal?
  • ¿Cómo save y salir de "nano .bash_profile" en la Terminal?
  • ¿Por qué el icono de la aplicación Terminal muestra un post no leído?
  • ¿Cómo puedo agregar una ruta a la variable de entorno PATH?
  • Autocompletar no funciona en Terminal local a la carpeta
  • ¿Cómo persisten las sesiones de terminal OS X a través de reinicios?
  • ¿Por qué funciona un SIGTERM de captura de script de shell cuando se ejecuta manualmente, pero no cuando se ejecuta mediante launchd?
  • 2 Solutions collect form web for “El ejecutable CLI "python" parece ignorar la jerarquía de ruta”

    Intenta cerrar la window de tu terminal y crea una nueva. El shell solo comtesting dónde se encuentran los commands en el inicio y no vuelve a comprobar si cree que sabe dónde se encuentra el command. Es un aumento de performance en los guiones, por lo que generalmente es una buena idea.

    Si su caparazón es bash, entonces puede usar los type y hash incorporados para manipular su caching de routes ejecutables (como se muestra en ¿Cómo borro el caching de routes de acceso de Bash a ejecutables? ):

     # to clear the whole cache hash -r # to only remove one cached command hash -d python 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).