web-dev-qa-db-fra.com

Créer un environnement virtuel Python 3

J'ai installé python3-virtualenv sur Lubuntu 15.1 en utilisant le paquet officiel Ubuntu apt-get install python3-virtualenv. La documentation officielle indique qu'un simple virtualenv . dans le répertoire de mon projet devrait suffire à créer le venv. Cela ne fait rien, parce que which virtualenv ne fait rien. (Rien de which python-virtualenv et which python3-virtualenv également).

Les informations sur le paquet, une fois installées, indiquent qu’elles ont installé /usr/lib/python3/dist-packages/virtualenv.py; j’appelle donc cela sous python3. Cela me donne ceci:

$ python3 /usr/lib/python3/dist-packages/virtualenv.py .
Running virtualenv with interpreter /usr/bin/python2
New python executable in ./bin/python2
Also creating executable in ./bin/python
Installing setuptools, pip...done.

Oui, quand je regarde, tout dans ./bin est python2. Le paquet python3-virtualenv d'ubuntu est-il un paquet factice pour python2?

La documentation officielle de Python indique que vous utiliserez un paquet différent: python3-venv . Cela semble fonctionner lorsque je pyvenv ., avec des éléments python3 dans le répertoire ./bin.

Comment créer avec succès un serveur virtuel Python 3?

12
Escher

venv est un script pratique permettant de créer des envs virtuels, mais ne remplace pas complètement tout ce que virtualenv peut faire. L'utilisation de l'un ou de l'autre convient toutefois dans la plupart des cas. virtualenv n'est pas obsolète.

python3 -m venv fonctionne après l'installation python3-venv car Debian supprime certains scripts du paquet Python de base. python3-virtualenv ne place pas le script virtualenv sur votre chemin pour une raison quelconque, mais python-virtualenv le fait et fonctionnera correctement pour l'une ou l'autre version.

Peu importe la version virtualenv pour laquelle il est installé, il est possible de générer des envs pour toutes les versions installées en transmettant -p pythonX (où X est la version). venv, étant plus simple, ne créera que les envs de la version à partir de laquelle elle est exécutée et n’est disponible que depuis la version 3.3.

$ Sudo apt-get install python-virtualenv
$ virtualenv -p python3 env
$ source ./env/bin/activate
$ Sudo apt-get install python3-venv
$ python3 -m venv env
$ source ./env/bin/activate
21
davidism