Virtualenv: Erreur lors de la création de virtualenv avec python3.6

Créé le 22 juin 2017  ·  24Commentaires  ·  Source: pypa/virtualenv

Plus tôt dans la journée, j'ai installé python3.6 sur ma machine Debian. Python3.6 a été rendu disponible dans la distribution Buster. Lorsque j'essaie de créer un virtualenv avec python3.6.

python3.6 -m venv venv

donne l'erreur suivante.

L'environnement virtuel n'a pas été créé avec succès car assurerpip n'est pas disponible. Sur les systèmes Debian/Ubuntu, vous devez installer le package python3-venv à l'aide de la commande suivante.

apt-get installer python3-venv

Vous devrez peut-être utiliser sudo avec cette commande. Après avoir installé le python3-venv
package, recréez votre environnement virtuel.

Commande défaillante : ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

J'ai installé python3-venv (3.5.3-1) . Pourquoi est-ce que j'obtiens cette erreur ? Si je lance la commande

py3 -Im ensurepip --upgrade --default-pip

ça dit

/usr/bin/python3.6: No module named ensurepip

Je n'ai pas de problème à créer des virtualenvs en utilisant la version par défaut de python3 (3.5.3).

Aussi, j'ai remarqué que je peux créer un virtualenv comme suit :

virtualenv -p python3.6 venv

Commentaire le plus utile

Le problème de l'affiche d'origine est dû au fait que le paquet 'python3.6-venv' n'est pas installé, ce qui peut être vérifié à l'aide de Docker si vous n'avez pas accès à un buster Debian :

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

Installez 'python3.6-venv' et cela devrait fonctionner.

Tous les 24 commentaires

Salut,

virtualenv et python3 venv propre module sont 2 projets/choses totalement différents.

venv fait la même chose que virtualenv mais est directement intégré dans python3 lui-même.
virtualenv est essentiellement le projet historique (et ne devrait normalement pas être utilisé avec python3 tant qu'il y a venv).

Sur la base de votre entrée, je dirais que python3-venv peut être réinstallé ( sudo apt-get reinstall python-venv ou quelque chose de similaire) de votre côté. Mais je peux me tromper. Quoi qu'il en soit, cela ressemble à tout ce qui concerne Debian, j'en suis presque sûr.

Alors pouvez-vous clore le sujet ? (Je ne suis pas le mainteneur ici)
Cordialement.

La réinstallation n'a pas fonctionné. Je vais clore ce sujet maintenant. Je mettrai à jour si j'ai plus d'informations.

@animeshb , vous n'avez plus de sortie après

Failing command: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

?

float<strong i="5">@animesh</strong>:~/test$ python3.6 -m venv venv

Rien après cette ligne.

The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.

apt-get install python3-venv

You may need to use sudo with that command. After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Dans le dossier venv/bin , il n'y a pas de commande d'activation.

float<strong i="13">@animesh</strong>:~/test$ ls venv/bin/
python  python3  python3.6

Je ne peux que vous rediriger vers l'une des nombreuses pages correspondant à cette erreur (c'est un problème connu avec les systèmes debian/ubuntu) :

https://bugs.launchpad.net/ubuntu/+source/python3.4/+bug/1290847

qu'en est-il de sudo apt-get install python3-pip ?

Le problème de l'affiche d'origine est dû au fait que le paquet 'python3.6-venv' n'est pas installé, ce qui peut être vérifié à l'aide de Docker si vous n'avez pas accès à un buster Debian :

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

Installez 'python3.6-venv' et cela devrait fonctionner.

Wow, il ne m'est pas du tout venu à l'esprit qu'il y aurait un package -venv spécifique à la version. L'installation de ceci a fait l'affaire.

@gst et @eukaryote Merci beaucoup d'avoir consacré votre temps à ce problème.

La solution de @eukaryote a fonctionné pour moi. Merci d'avoir posté ça !

Des paramètres régionaux mal configurés peuvent également induire ce problème, car cette réponse résout mon problème qui produit le même message d'erreur que OP.

Essayez d'exécuter :

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

un seul point de données, mais en jouant avec une nouvelle virtualbox ubuntu bionic, j'ai découvert que apt install python3.6-venv me laissait toujours un python3.6 -m venv cassé, mais l'exécution de apt install python3-venv corrigé.

Je suis sur Debian testing/buster et j'ai le même problème, alors que python3.6-venv et python3-venv sont tous deux installés.

Le bogue debian pour cela est ici d'ailleurs : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601

nicolas
Ils y écrivent qu'il est réparé dans la dernière version. Alors j'ai fait
apt purger python3.6-venv
dpkg -i --force-depends-version python3.6-venv_3.6.6~rc1-3_amd64.deb # de snapshot.debian.org
Et cela fonctionne pour moi.
J'aurai probablement besoin d'un correctif plus tard : apt --fix-broken install

Je laisse juste un commentaire ici, pour ceux qui arrivent après moi, googler pour le même problème :

la même chose s'applique à 3.7 de python, vous devez installer python3.7-venv , soit apt-get install python3.7-venv

Juste pour info, la solution ci-dessus ne fonctionne pas en fait pour python 3.7. apt install python3.7 python3.7-venv sur une image docker stock buster produit toujours un virtualenv cassé ("ensurepip n'est pas disponible"). Cependant, après apt install python3-venv (qui installe inutilement tout python3.6), vous pouvez créer un python 3.7 venv fonctionnel comprenant un pip 3.7 approprié, avec python3.7 -m venv myvenv . L'ensemble de commandes de travail complet est donc le suivant :

sudo apt install python3.7 python3-venv python3.7-venv # all three are required
python3.7 -m venv myvenv
. myvenv/bin/activate

(Au fait, notez que toutes les installations de python3.7-venv sont un système factice ensurepip module.)

vous parlez de venv , qui est un projet différent. Ce tracker est pour virtualenv.

J'étais également confronté au même problème.

[ niraj@abc ~]$/python/v3.7.0/bin/python3 -m venv avd
Erreur : La commande '['/home/niraj/avd/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' a renvoyé un état de sortie différent de zéro 1.

Après avoir ajouté libffi3.3 sur mon chemin LD_LIBRARY cela fonctionne

setenv LD_LIBRARY_PATH /libffi/v3.3/lib64

Tout d'abord, j'ai installé avec sudo apt install python3-venv et j'ai eu le même problème et il a été résolu en faisant : sudo apt install python3.6-venv

@eukaryote ne fonctionnait toujours pas. Pouvez-vous aider? Je suis sur Ubuntu 18.04 LTS

Des paramètres régionaux mal configurés peuvent également induire ce problème, car cette réponse résout mon problème qui produit le même message d'erreur que OP.

Essayez d'exécuter :

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

Cela fonctionne pour moi sur Ubuntu 16.04.6. Merci

Des paramètres régionaux mal configurés peuvent également induire ce problème, car cette réponse résout mon problème qui produit le même message d'erreur que OP.

Essayez d'exécuter :

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

Je vous remercie

Wow, l'installation de la version spécifique de venv a fonctionné pour moi. Dans mon cas python3.8-venv.

Merci @jrperin

L'installation de la version spécifique a également fonctionné pour moi : python3.8-venv

Si la version du système d'exploitation est 18.04 ou 20.04 :

sudo apt remove python3.6
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6
sudo apt install python3.6-venv
sudo apt install python3.6-dev

Logiciels de prise en charge supplémentaires
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

Cette page vous a été utile?
0 / 5 - 0 notes