2010-01-31 5 views
70

J'ai un virtualenv créé pour Python 2.5 et je veux le "mettre à niveau" vers Python 2.6.Peut-on mettre à jour virtualenv avec élégance?

Voici comment il a été mis en place:

virtualenv --no-site-packages -p python2.5 myenv 

Je lance maintenant virtualenv dans le même répertoire de mise à niveau:

virtualenv --no-site-packages -p python2.6 myenv 
... 
Not overwriting existing python script myenv/bin/python (you must use myenv/bin/python2.6) 
... 
Overwriting myenv/bin/activate with new content 

Le python par défaut est encore 2.5, même si je peux aussi spécifiez 2.6. Est-il possible de supprimer complètement 2.5 et de pointer 'bin/python' vers 2.6 à la place?

Répondre

47

Vous pouvez utiliser le virtualenv Python 2.6 pour "revirtual" le répertoire existant. Vous devrez réinstaller tous les modules que vous avez installés. J'ai souvent un répertoire virtuel pour développer un module, et virtualenv le même répertoire avec de nombreuses versions de Python, et ça marche très bien. :)

+1

Merci! J'ai essayé votre méthode et je vois que le script 'activate' est mis à jour, mais l'ancienne version reste (veuillez voir la question révisée). Êtes-vous capable de donner un exemple? –

+10

vous pouvez simplement supprimer l'exécutable bin/python dans virtualenv avant de réexécuter virtualenv avec python 2.6. –

+0

Parfait! Merci! –

4

Vous devez créer une nouvelle virtualenv en utilisant python2.6 puis, après avoir activé le nouveau env, utiliser ses python2.6 et son easy_install d'installer de nouvelles versions de tous les packages de site dont vous avez besoin. Sachez que le chemin d'accès au virtualenv est câblé dans différents fichiers de l'environnement. Ainsi, lorsque vous êtes prêt à basculer vers ce chemin, changez vos scripts de démarrage et al pour vous référer au nouveau chemin virualenv ou faites très attention de le copier sur l'ancien répertoire et en modifiant les noms de chemin à l'intérieur.

2

installer un second Python sur CentOS

  1. télécharger python
  2. INSTALL pour diff locale

    configure --prefix=/opt/virtualenv/python 
    make && make install 
    
  3. créer env virtuel en utilisant python nouveau

    virtualenv /opt/virtualenv --python=/opt/python276/bin/python 
    

    Note : si nécessaire, il peut être don e avec un autre utilisateur

    chown pyuser -R /opt/virtualenv 
    su - pyuser 
    source /opt/virtualenv/bin/activate 
    python -v 
    
  4. Créer env virtuel:

    virtualenv /opt/virtualenv 
    su - infograficos 
    source bin/activate 
    
  5. Installer pip avec Python 2.7 (intérieur virtualenv)

    easy_install pip 
    
0

Si vous utilisez OS X, essayez this si vous souhaitez mettre à niveau Python vers une version mineure-augmentée (par exemple 2.7.6 à 2.7.8) tout en conservant les bibliothèques tierces.

Cela fonctionne pour moi sur 5 environnements virtuels différents avec Django installé.