web-dev-qa-db-fra.com

Comment utiliser virtualenv avec python3.6 sur Ubuntu 16.04?

J'utilise Ubuntu 16.04, qui vient avec Python 2.7 et Python 3.5. J'ai installé Python 3.6 sur celui-ci et le lien symbolique python3 vers python3.6 via alias python3=python3.6.

Ensuite, j'ai installé virtualenv en utilisant Sudo -H pip3 install virtualenv. Lorsque j'ai vérifié, virtualenv s'est installé à l'emplacement "/usr/local/lib/python3.5/dist-packages". Ainsi, lorsque j'essaie de créer virtualenv à l'aide de python3 -m venv ./venv1, des erreurs se produisent:

Error Command: ['/home/wgetdj/WorkPlace/Programming/Python/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Que devrais-je faire?

24
wgetDJ

Nous utilisons habituellement $ python3 -m venv myvenv pour créer un nouveau virtualenv (Ici, myvenv est le nom de notre virtualenv).

Comme dans mon cas, si vous avez à la fois python3.5 ainsi que python3.6 sur votre système, vous risquez d'obtenir des erreurs.

NOTE: Sur certaines versions de Debian/Ubuntu, le message d'erreur suivant peut s'afficher:

 The virtual environment was not created successfully because ensure pip is not available.  On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.
      apt-get installpython3-venv  
 You may need to use Sudo with that command.  After installing the python3-venv package, recreate your virtual environment. 

Dans ce cas, suivez les instructions ci-dessus et installez le paquet python3-venv:

$ Sudo apt-get install python3-venv

NOTE: Sur certaines versions de Debian/Ubuntu, l’initialisation de l’environnement virtuel de cette manière donne actuellement l’erreur suivante:

Error Command: ['/home/wgetdj/WorkPlace/Programming/Python/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Pour résoudre ce problème, utilisez plutôt la commande virtualenv.

$ Sudo apt-get install python-virtualenv
$ virtualenv --python=python3.6 myvenv

NOTE: Si vous obtenez une erreur comme

E: impossible de localiser le paquet python3-venv

puis exécutez à la place:

Sudo apt install python3.6-venv
33
wgetDJ

L'installation de python3.6 et python3.6-venv via ppa:deadsnakes/ppa au lieu de ppa:jonathonf/python-3.6 a fonctionné pour moi

apt-get update \
&& apt-get install -y software-properties-common curl \
&& add-apt-repository ppa:deadsnakes/ppa \
&& apt-get update \
&& apt-get install -y python3.6 python3.6-venv
9
Orny

Je pense qu'un problème pourrait être lié à la mauvaise localisation. J'ai ajouté au /etc/environment les lignes suivantes pour le corriger:

LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

Vous devez source le fichier de votre bash avec cette commande:

source /etc/environment
1
Zen