virtualenvwrapper et Python 3

119

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

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

cela a créé un dossier envpy331sur mon répertoire personnel.

J'ai également virtualenvwrapperinstallé. Mais dans la documentation, seules les 2.4-2.7versions de pythonsont prises en charge .. Quelqu'un at-il essayé d'organiser le python3virtualenv? Si oui, pouvez-vous me dire comment?

Damon
la source
1
Le problème avec cela est que pip est toujours le pip python2, n'est-ce pas? Je pense que vous voulez utiliser virtualenvwrapper à la pyvenvplace devirtualenv
erikbwork

Réponses:

240

Si vous avez déjà installé python3 ainsi que virtualenvwrapper, la seule chose à faire pour utiliser python3 avec l'environnement virtuel est de créer un environnement à l'aide de:

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

Ou, (au moins sur OSX 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

Jonathan
la source
12
Cela n'a pas tout à fait fonctionné pour moi sur OSX avec 2.7.8 et 3.4.1 installés côte à côte via brew. Le modifier en "mkvirtualenv --python =` which python3` nameOfEnvironment "fonctionnait parfaitement, cependant.
Chris Doggett
@ChrisDoggett idem sur Ubuntu 14.10.
z0r
4
Sur Ubuntu, la commande sera: mkvirtualenv --python = / usr / bin / python3 votre-nom-env
Vasiliy Toporov
2
Si vous utilisez bash, vous pouvez faire une substitution pour enregistrer une ligne -mkvirtualenv --python=$(which python3) nameOfEnvironment
d4nyll
ce qui est vraiment génial, c'est de créer l'alias bash suivant alias mkvirtualenv3="mkvirtualenv --python=$(which python3.6)"- alors il est facile de créer des virtualenvs pour python 2 ou 3
robertmoggach
52

Vous pouvez faire en sorte que virtualenvwrapper utilise un binaire Python personnalisé au lieu de celui avec lequel virtualenvwrapper est exécuté. Pour ce faire, vous devez utiliser la variable VIRTUALENV_PYTHON qui est 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.
Iliyan Bobev
la source
2
C'est effectivement obsolète. Plutôt que de définir une variable d'environnement, vous devez utiliser le paramètre --python actuellement suggéré par Jonathan.
AlexLordThorsen
6
@Rawrgulmuffins Pourquoi? Cela évite d'avoir à spécifier la version python pour chaque nouvel env.
Joost
@Joost C'est un bon point. Personnellement, je pense que c'est un inconvénient, mais je peux voir pourquoi les gens préféreraient cela.
AlexLordThorsen
21

virtualenvwrapper vous permet désormais de spécifier l'exécutable python sans le chemin.

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

Peter Yin
la source
2
Nécessite deux tirets. Modifierait, mais SE nécessite 6 caractères et le changement n'en a besoin que d'un.
jwogrady
20

Sur Ubuntu; using mkvirtualenv -p python3 env_namecharge le virtualenv avec python3.

À l'intérieur de l'environnement, utilisez python --versionpour vérifier.

akashbw
la source
1
python --versionpour afficher la version
Dos
20

Vous pouvez l'ajouter à votre .bash_profile ou similaire:

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

Utilisez ensuite mkvirtualenv3au lieu de mkvirtualenvlorsque vous souhaitez créer un environnement python 3.

chorbs
la source
13

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 vous avez python3 dans / usr / bin / python3 et virtualenv-3.4 dans /usr/local/bin/virtualenv-3.4.

CurieuxGeorge
la source
Utilisez simplement which python2.4ou which python3.5ou which python3.6pour trouver le répertoire pour--python=DIRECTORY
Santhosh
5

Cet article sur le suivi des problèmes bitbucket de virtualenvwrapper peut être intéressant. Il est mentionné ici que la plupart des fonctions de virtualenvwrapper fonctionnent avec les environnements virtuels venv dans Python 3.3.

Ioannis Filippidis
la source
0

J'ai ajouté export VIRTUALENV_PYTHON=/usr/bin/python3à mon ~/.bashrccomme ceci:

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENV_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

puis courir source .bashrc

et vous pouvez spécifier la version python pour chaque nouvel env mkvirtualenv --python=python2 env_name

Mustapha-Belkacim
la source