2009-08-02 13 views
21

Actualmente tengo múltiples versiones de Python instaladas en mi Mac, la que vino con ella, una versión que descargué recientemente de python.org, una versión anterior utilizada para ejecutar Zope localmente y otra versión que Appengine está usando. Es un desastre. ¿Alguna recomendación de usar una versión de python para gobernarlos a todos? ¿Cómo voy a eliminar las versiones anteriores y vincular todas mis aplicaciones a una sola instalación? Cualquier truco específico de Mac que deba saber? ¿Es esta una idea tonta?Múltiples versiones de Python en OS X Leopard

+0

Lea esta publicación del blog: http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/ –

Respuesta

20

No hay nada intrínsecamente incorrecto en tener múltiples versiones de Python. A veces es una necesidad cuando se usan aplicaciones con dependencias de versión. Probablemente, el problema más importante es lidiar con las dependencias del paquete del sitio, que pueden variar de una aplicación a otra. Las herramientas como virtualenv pueden ayudar allí. Una cosa que debe hacer es no hacer es intentar eliminar el Python suministrado por Apple en/System/Library/Frameworks y vinculado desde/usr/bin/python. (Tenga en cuenta la reciente discusión de múltiples versiones here.)

+1

+1 en virtualenv. Me vinculé a la página de inicio virtualenv. –

1

El enfoque prefiero que debe trabajar en todos los sistemas operativos UNIX:

Crear para cada aplicación que necesita una versión específica pitón una cuenta de usuario. Instale en cada usuario cuente la versión python correspondiente con un prefijo local del usuario (como ~/build/python) y agregue ~/build/bin/a la variable de entorno PATH del usuario. Instala/usa tus aplicaciones python en su usuario correcto.

La ventaja de este enfoque es el aislamiento perfecto entre las instalaciones de python individuales y la selección relativamente conveniente del entorno de python correcto (solo su para el usuario apropiado). Además, el sistema operativo permanece intacto.

9

Ian Bicking's virtualenv me permite tener Python aislados para cada aplicación que construyo, y me permite decidir si incluir o no los paquetes de sitio globales en el entorno aislado de Python.

No he probado con Zope, pero supongo que el siguiente debería funcionar muy bien:

  1. utilizar Python de su Zope, hacer una nueva virtualenv, ya sea con o sin --no-sitio -packages
  2. cae su Zope en el virtualenv
  3. activar el entorno con $ Venv/bin/activar
  4. Instalar cualquier site-packages necesarios
  5. ejecutar su Zope utilizando el pitón ahora en $ Venv/bin/python

Esto ha funcionado de manera brillante para administrar proyectos de Django con varias versiones de Python, Django y complementos.

This article parece entrar en más detalles sobre los detalles de Grok y Virtualenv, pero las generalidades deben aplicarse también a Zope.

2

+1 for virtualenv.

Incluso si no necesita versiones diferentes de Python, sigue siendo bueno mantener sus dependencias de desarrollo separadas de su sistema Python.

No estoy seguro de qué sistema operativo está utilizando, pero las instrucciones these son muy útiles para obtener entornos de desarrollo python que se ejecutan en OSX.

Cuestiones relacionadas