¿Cómo actualizo correctamente Python en Mac OS X?

¿Cómo actualizo correctamente Python en Mac OS X?

Si descargo Python del sitio web de Python e intento instalarlo con el instalador, se instala, pero necesito especificar que quiero la nueva versión de Python cuando ejecuto mis programas desde la terminal. Si solo escribo:

python app.py

Funciona con la versión anterior.

¿Cómo puedo configurar la nueva versión como predeterminada?

Respuesta1

Finalmente encontré cómo hacerlo. El instalador creó una carpeta de Python 2.6 en /Application. En esta carpeta hay un script llamado Update Shell Profile.command. Solo necesitaba ejecutarlo y ahora está funcionando.

Respuesta2

Dos preguntas:

  1. ¿Dónde se instaló el nuevo Python?
  2. ¿Cómo es tu $PATH?

Una configuración predeterminada en sistemas tipo Unix es que el software instalado por el usuario se instala en /usr/local/bin, y la mayoría de las distribuciones *nix colocan ese directorioantesdirectorios de todo el sistema en la variable predeterminada $PATH (que es como su shell sabe dónde buscar programas). De esa manera, si instala algo nuevo, el elemento nuevo se encontrará primero.

Sin embargo, una $PATH predeterminada de OS X se ve así:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

El problema es que al poner/usr/local/bintan tarde, el sistema Python (que está en/usr/biny por eso antes en tu $PATH) sigue siendo afectado.

Mi respuesta es hacer que mi $PATH se vea así en una Mac:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

Para hacer eso, cree un archivo.perfilen su directorio de inicio y agregue algo como esto:

#### Let's take care of our $PATH
# A backup of the original $PATH
# /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

# My preferred order - /usr/local goes first, damn it!
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

Editar: Estoy siguiendo aquí, en lugar de en los comentarios porque se está haciendo demasiado largo para un comentario. La línea en tu.perfilcon /sw/bin/init.shviene del administrador de paquetesSoplón, que supongo que usas (o usas en algún momento). La otra línea parece sugerir que en algún momento instaló MacPython y lo reescribió $PATHpor usted. No conozco MacPython, pero si eseste sitio, entonces no se actualiza desde 2004. Tampoco parece hablar de ninguna versión de OS X más allá de la 10.3, que no es muy actual.

Ahora estoy más confundido: ¿cuándo actualizaste Python? ¿Cómo lo actualizaste? ¿Qué versión de OS X estás ejecutando?

Respuesta3

Descubra dónde vive Python:

$ which python
/usr/bin/python

Vea si es un enlace simbólico:

$ ls -Fal /usr/bin/python
lrwxr-xr-x  1 root wheel  72 May 19 12:02 /usr/bin/python@ -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python

Si es así, vincule /usr/bin/python al nuevo Python:

$ sudo ln -s (new python, maybe /System/Library/Frameworks/Python.framework/Versions/2.x/bin/python) /usr/bin/python

Comprueba si funciona:

$ python --version
Python 2.xxx

información relacionada