2009-08-02 8 views
21

J'ai actuellement plusieurs versions de Python installées sur mon Mac, celle qui l'accompagne, une version que j'ai téléchargée récemment de python.org, une ancienne version utilisée pour exécuter Zope localement et une autre la version que Appengine utilise. C'est un peu le bordel. Des recommandations d'utiliser une version de python pour les gouverner tous? Comment puis-je supprimer les anciennes versions et relier toutes mes applications à une seule installation? Des pièges spécifiques à Mac que je devrais connaître? Est-ce une idée stupide?Plusieurs versions de Python sur OS X Leopard

+0

Lisez cet article de blog: http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/ –

Répondre

20

Il n'y a rien de mal à avoir plusieurs versions de Python. Parfois, c'est une nécessité lorsque vous utilisez des applications avec des dépendances de version. Le problème le plus important concerne probablement les dépendances de package de site, qui peuvent varier d'une application à l'autre. Des outils comme virtualenv peuvent vous aider. Vous devez essayer de supprimer le Python fourni par Apple dans/System/Library/Frameworks et lié à/usr/bin/python. (Note de la discussion récente de plusieurs versions here.)

+1

+1 sur virtualenv. J'ai lié à la page d'accueil de virtualenv. –

1

L'approche que je préfère ce qui devrait fonctionner sur tous les systèmes d'exploitation de type UNIX:

Créer pour chaque application qui ont besoin d'une version python spécifique d'un compte utilisateur. Installer dans chaque utilisateur compte la version python correspondante avec un préfixe utilisateur local (comme ~/build/python) et ajoute ~/build/bin/à la variable d'environnement PATH de l'utilisateur. Installez/utilisez vos applications python dans leur bon utilisateur.

L'avantage de cette approche est l'isolation parfaite entre les installations python individuelles et la sélection relativement pratique de l'environnement python correct (juste su à l'utilisateur approprié). Le système d'exploitation reste également intact.

9

Ian Bicking's virtualenv me permet d'avoir des pythons isolés pour chaque application que je compile, et me laisse décider d'inclure ou non les paquets de sites globaux dans l'environnement Python isolé.

Je ne l'ai pas essayé avec Zope, mais je devine que les éléments suivants devraient fonctionner très bien:

  1. Utilisation de votre Python Zope, faire une nouvelle virtualenv, que ce soit avec ou sans --no site -Les forfaits
  2. Déposez votre Zope dans le virtualenv
  3. Activez l'environnement avec $ venv/bin/activer
  4. Installez les nécessaires site-packages
  5. Exécutez votre Zope en utilisant Python maintenant à venv $/bin/python

Cela a fonctionné avec brio pour la gestion de projets Django avec différentes versions de Python, Django et des add-ons.

This article semble aller plus en détail sur les spécificités de Grok et Virtualenv, mais les généralités devraient également s'appliquer à Zope.

2

+1 pour virtualenv.

Même si vous n'avez pas besoin de versions différentes de Python, il est toujours bon de garder vos dépendances de développement séparées de votre système Python.

Je ne suis pas sûr quel système d'exploitation vous utilisez, mais je trouve les instructions these très utiles pour obtenir des environnements de développement python fonctionnant sous OSX.

Questions connexes