2010-12-16 12 views
12

Acabo de descargar el Python 2.7.1 DMG de Python.org. He visto sugerencias para obtener ActivePython, pero preferiría la de Python.org.Instalar Python 2.7.1 lado a lado con Python suministrado por Apple

  1. Si tan sólo ejecutar el instalador mpkg dentro de la DMG, aceptar todos los valores predeterminados, va a vivir en paz con el pitón suministrado por Apple?
  2. Si escribo python en Terminal, ¿cuál obtendré?
  3. En la Terminal, ¿cómo especifico ejecutar el Python suministrado por Apple? ¿Qué pasa con el Python que instalé?
  4. ¿De qué se trata la configuración de PATH al instalar una versión de Python diferente? Entiendo que el instalador de Python simplemente lo configurará automáticamente. Pero aún quiero mirar debajo del capó. Sé cómo hacer esto en Windows (variables de entorno). Para Mac OS X, ¿cómo puedo jugar con el PATH?

También podría probar esto primero, pero soy nuevo en la Mac. Python es una instalación bastante complicada, escribe archivos en diferentes carpetas y configura configuraciones del sistema operativo como PATH. TrashMe o AppCleaner pueden no ser muy efectivos con la desinstalación de Python si alguna vez quiero volver a la borrón y cuenta nueva. Por lo tanto, quiero obtener una visión clara de mis preguntas anteriores.

+0

Se puede complacer a aceptar una respuesta o actualizar el hilo sobre por qué no se aceptan las respuestas? – Sumod

Respuesta

24

Si no modificó el conjunto predeterminado de paquetes al usar el instalador de python.org, al escribir python desde una línea de comandos se debe ejecutar el Python 2.7 recién instalado. (Necesitará iniciar una nueva sesión de terminal después de ejecutar el instalador para ver esto.) Los instaladores actuales de python.org para OS X crean una carpeta en su directorio de aplicaciones llamado Python m.n dependiendo de la versión de Python. Si mira en /Applications/Python 2.7, verá un archivo llamado Update Shell Profile.command. Es un script de shell; puede inspeccionarlo en un editor o con Quicklook. Su propósito es modificar los archivos de inicio de los programas de shell más comunes en OS X (bash, sh, csh) para garantizar que el directorio donde se encuentran los nuevos comandos ejecutables de Python se agregue al frente de la lista de directorios en el PATH variable de entorno, de modo que los comandos de python en él se encontrarán antes de que se encuentren los comandos de python de Apple-suppled. De forma predeterminada, el instalador ejecuta automáticamente el Update Shell Profile.command. Esto debe resultar en algo como esto:

$ cat ~/.bash_profile 
# .bash_profile 
# ... other stuff 

# Setting PATH for Python 2.7 
# The orginal version is saved in .bash_profile.pysave 
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" 
export PATH 

Si se echa un vistazo en ese directorio, debería ver algo como esto:

$ ls -l /Library/Frameworks/Python.framework/Versions/2.7/bin 
total 272 
lrwxr-xr-x 1 root admin  8 Nov 30 00:49 [email protected] -> 2to3-2.7 
-rwxrwxr-x 1 root admin 140 Nov 30 00:30 2to3-2.7* 
lrwxr-xr-x 1 root admin  7 Nov 30 00:49 [email protected] -> idle2.7 
-rwxrwxr-x 1 root admin 138 Nov 30 00:30 idle2.7* 
lrwxr-xr-x 1 root admin  8 Nov 30 00:49 [email protected] -> pydoc2.7 
-rwxrwxr-x 1 root admin 123 Nov 30 00:30 pydoc2.7* 
lrwxr-xr-x 1 root admin  9 Nov 30 00:49 [email protected] -> python2.7 
lrwxr-xr-x 1 root admin  16 Nov 30 00:49 [email protected] -> python2.7-config 
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 python2.7* 
-rwxrwxr-x 1 root admin 1663 Nov 30 00:31 python2.7-config* 
lrwxr-xr-x 1 root admin  10 Nov 30 00:49 [email protected] -> pythonw2.7 
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 pythonw2.7* 
lrwxr-xr-x 1 root admin  11 Nov 30 00:49 [email protected] -> smtpd2.7.py 
-rwxrwxr-x 1 root admin 18586 Nov 30 00:30 smtpd2.7.py* 

El nuevo pitón está disponible como el comando python2.7 pero hay también un enlace simbólico a él como python.Debido a que el entorno PATH se ha cambiado:

$ echo $PATH 
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 

cuando se escribe python como un comando en la cáscara, ese enlace simbólico se encontró por primera vez antes de que el suministrado por el de Apple python en /usr/bin uno de los directorios en los comandos de usuario del sistema suministrados están instalados (como en OS X 10.6): (. nota, en general, no se debe intentar modificar o borrar archivos en /usr/bin ya que son parte de OS X y gestionado por Apple)

$ ls /usr/bin/py* 
/usr/bin/pydoc*   /usr/bin/python-config* /usr/bin/[email protected] 
/usr/bin/[email protected]   /usr/bin/[email protected]  /usr/bin/pythonw* 
/usr/bin/[email protected]   /usr/bin/[email protected] /usr/bin/[email protected] 
/usr/bin/python*   /usr/bin/[email protected]  /usr/bin/[email protected] 

Hay muchas maneras de administrar varias instalaciones de Python en OS X; revisa los archivos o la web. Una cosa a tener en cuenta es que siempre puedes usar una ruta absoluta al comando python deseado para verificar. Así, con la ruta modificada que el anterior debería ver los siguientes comportamientos:

$ /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 -c 'import sys;print(sys.version)' 
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] 
$ python2.7 -c 'import sys;print(sys.version)' 
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] 
$ python -c 'import sys;print(sys.version)' 
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] 
$ /usr/bin/python -c 'import sys;print(sys.version)' 
2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] 
$ /usr/bin/python2.6 -c 'import sys;print(sys.version)' 
2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] 
4
  1. Sí, funcionará bien.
  2. Deberá cambiar el enlace simbólico apropiado. Siempre puede verificar usando which python.
  3. Puede crear enlaces simbólicos adicionales para las diferentes versiones (por ejemplo, python_mac y python_standard).
  4. Lee this.
1

diferentes instalaciones Python puede ser obligado a correr sin obstáculos, especialmente, si se utiliza virtualenv

puede seguir estos artículo sobre

  1. bootstrapping virtual environments
  2. setting up python ecosystems

Esto le indicará cómo instalar diferentes versiones de python en diferentes lugares, cada una con su propio conjunto de paquetes de sitio y hacer que trabajen individualmente en diferentes proyectos. Recomendamos encarecidamente que lo analice, ya que también explica cómo cambiar la variable PATH de una manera sencilla para que los comandos de su shell puedan encontrar diferentes instalaciones de python.

Aquí hay alguna información rápida acerca de dónde diferentes instalaciones pitón van a ..

Typing which python en la terminal le indicará su ubicación. También puede usar python -V para ver la versión utilizada. Recuerde, python y python2.x pueden ser cosas diferentes. Puede asignar nombres apropiados a diferentes instalaciones de Python para llamarlos a la terminal o en sus scripts usando el comando alias. Por ejemplo,

alias /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 sys-py27 
  • de Apple suministrado pitón sistema está instalado en /System/Library/Frameworks/Python.framework y /usr/bin/python

    • De hecho, usted no debe meterse con ellos al tratar de eliminarlos manualmente. El sistema python podría estar siendo utilizado por otro software en su computadora.
    • para comprobar lo que es actualmente la pitón sistema puede utilizar

      python -c 'import sys;print(sys.version)'

  • instaladores envasados ​​que descargar y ejecutar normalmente instalar a /Library/Frameworks/Python.framework/Versions/2.7/bin/

    • Puede eliminar manualmente el Carpeta Python.framework También puede ver Python en la carpeta de aplicaciones junto con otras cosas como IDLE, AppBuilder y PythonLauncher. Puede continuar y eliminar esos si es necesario.
  • DarwinPorts va a instalar Python o algo así Python26 y python27 a /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/

    • Puede desinstalar mediante el uso habitual sudo port uninstall packageName y si desea eliminar dependencias usar algo como el código

      sudo port uninstall python27 --follow-dependents installed

    • Todas las cosas adicionales como numpy, scipy, PIL, opencv, etc. que intenta instalar usando port irá a

      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

Cuestiones relacionadas