virtualenvwrapper et Python 3

J’ai installé python 3.3.1 sur ubuntu lucid et créé avec succès virtualenv comme ci-dessous

virtualenv envpy331 --python=/usr/local/bin/python3.3 

Cela a créé un dossier envpy331 sur mon répertoire envpy331 .

J’ai aussi virtualenvwrapper installé. 2.4-2.7 dans les docs, seules les versions 2.4-2.7 de python sont supscopes. Quelqu’un a-t-il essayé d’organiser python3 virtualenv? Si oui, pouvez-vous me dire comment?

La dernière version de virtualenvwrapper est testée sous Python3.2. Les chances sont bonnes qu’il fonctionne aussi avec Python3.3.

Si vous avez déjà installé python3 aussi virtualenvwrapper, la seule chose que vous devez faire pour utiliser python3 avec l’environnement virtuel est de créer un environnement en utilisant:

 which python3 #Output: /usr/bin/python3 mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment 

Ou, (au moins sur OSX en utilisant Brew):

 mkvirtualenv --python=`which python3` nameOfEnvironment 

Commencez à utiliser l’environnement et vous verrez que dès que vous tapez python, vous commencerez à utiliser python3

Vous pouvez faire en sorte que virtualenvwrapper utilise un binary Python personnalisé au lieu de celui sur lequel virtualenvwrapper est exécuté. Pour ce faire, vous devez utiliser la variable VIRTUALENV_PYTHON utilisée par virtualenv:

 $ export VIRTUALENV_PYTHON=/usr/bin/python3 $ mkvirtualenv -a myproject myenv Running virtualenv with interpreter /usr/bin/python3 New python executable in myenv/bin/python3 Also creating executable in myenv/bin/python (myenv)$ python Python 3.2.3 (default, Oct 19 2012, 19:53:16) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. 

virtualenvwrapper vous permet maintenant de spécifier l’exécutable python sans le chemin.

Donc (sur OSX au moins) mkvirtualenv --python=python3 nameOfEnvironment suffira.

Sur Ubuntu; using mkvirtualenv -p python3 env_name charge virtualenv avec python3.

A l’intérieur de l’env, utilisez python --version pour vérifier.

Je trouve ça courant

 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 

et

 export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv-3.4 

dans la ligne de commande sur Ubuntu force mkvirtualenv à utiliser python3 et virtualenv-3.4. Il faut encore faire

 mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment 

pour créer l’environnement. Cela suppose que python3 soit dans / usr / bin / python3 et virtualenv-3.4 dans /usr/local/bin/virtualenv-3.4.

Vous pouvez append ceci à votre fichier .bash_profile ou similaire:

 alias mkvirtualenv3='mkvirtualenv --python=`which python3`' 

Utilisez ensuite mkvirtualenv3 au lieu de mkvirtualenv lorsque vous souhaitez créer un environnement python 3.

Cet article sur le tracker de problème bitbucket de virtualenvwrapper peut être intéressant. On y mentionne que la plupart des fonctions de virtualenvwrapper fonctionnent avec les environnements virtuels venv en Python 3.3.