pyvenv ne fonctionne pas car ensurepip n'est pas disponible


88

J'ai mis à jour ubuntu 14.04 vers ubuntu 16.04 il y a quelques jours. Lorsque j'essaye de créer un environnement virtuel en utilisant

pyvenv .venv

ou

python3 -m venv .venv

Il y a une erreur:

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: ['/usr/bin/python3.5', '-Im', 'ensurepip', '--upgrade', '--default-pip']

J'ai essayé d'exécuter les deux

sudo apt-get install python3-venv

et

sudo apt-get install python3.5-venv

mais cela n'a pas résolu mon problème.


Mon problème est résolu sur le système d'exploitation avec les informations de version: ID de distributeur: LinuxMint Description: Linux Mint 18.3 Version de Sylvia: 18.3
nix

aucune des réponses ne l'a résolu pour moi. toujours coincé sur la même erreur
Shoaib Iqbal

Réponses:


114

Il semble que ce soit un problème de localisation. Résolu en exécutant:

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

trouvé sur ce thread Erreur de paramètres régionaux Python: paramètre de paramètres régionaux non pris en charge


34
C'est fou mais c'est vrai
user1703761

8
Vraiment curieux, mais quelqu'un sait quelle est la raison?
Juan Antonio

n'a pas fonctionné pour moi sur le système d'exploitation avec les informations de distribution: ID de distributeur: LinuxMint Description: Linux Mint 18.3 Sylvia Version: 18.3
nix

1
Merci d'exécuter une configuration de docker minimale ici. Je n'aurais jamais deviné.
Antti Haapala

1
@JuanAntonio Il semble qu'Ubuntu (au moins 16.04) soit un bistro non-Unicode prêt à l'emploi, comme mentionné dans ce numéro: tickets.puppetlabs.com/browse/IMAGES-498 Je suppose que nous devrions ajouter des paramètres régionaux à notre démarrage de serveur. .
Andreas Bergström

106

essayez d'installer python3.6-venv:

sudo apt-get install python3.6-venv

Merci pour la solution. Cela a fonctionné sur 16.04 (étant donné que python3.6 était déjà installé bien sûr). Ce que je ne comprends PAS, c'est que: 1. venv devrait précisément rendre l'utilisation d'apt-get inutile. Cela fait partie de la bibliothèque standard. 2. Pourquoi la version par défaut de pip utilisant venv n'est-elle pas la dernière version?
Lionel Trebuchon le

26
... ou sudo apt-get install python3.7-venvsi vous utilisez python 3.7
Alleo

12
... ou sudo apt-get install python3.8-venvsi vous utilisez python 3.8
cowlinator

3
... ou sudo apt-get install python3.9-venvsi vous utilisez python 3.9 (pour le futur)
Andrey Semakin

7
... ou sudo apt-get install python3.10-venvsi vous utilisez python 3.10 (au cas où nous
survivrions

44

Une des autres réponses l'a corrigé pour moi la dernière fois, mais avec Python 3.7, je devais faire:

apt install python3-pip python3-setuptools python3.7-venv

Suivi par

python3.7 -m venv /path/to/venv

22

Sous le sous-système Windows Linux et Ubuntu 18.04, cela était dû au fait que je n'avais pas mis à niveau récemment.

L'Iran:

sudo apt update
sudo apt upgrade

Puis sudo apt install python3-venvtravaillé.

Notez que j'avais également essayé la solution UTF-8 au préalable (je l'ai intégrée à mon .bashrc), donc cela aurait pu être un facteur contributif.


4
Je ne pense pas que la solution UTF-8 compte. Je suis également sur WSL Ubuntu 18.04 et les étapes sudo apt updateet sudo apt install python3-venvétaient suffisantes.
Theja

1
C'est la seule solution qui a fonctionné pour moi! J'ai essayé de changer de langue et d'installer une version plus récente de Python en vain
arctic.queenolina

2
cela a fonctionné pour moi aussi, j'ai essayé plusieurs autres options .. cela n'a pas fonctionné,
Apprenant le

brillant, a travaillé pour moi !!!
Reckoner

9

Dans mon cas, les étapes suivantes ont fonctionné:

  • Ubuntu 18.04.4 LTS
 $ sudo apt-get install python3-venv python3.7-venv
 $ python3.7 -m venv [your_path_to_virtual_env_here]

8

Au cas où cela aiderait quelqu'un sur toute la ligne, j'obtenais la même erreur sur Ubuntu 18.04. La configuration des paramètres régionaux n'a pas fonctionné et la tentative d'installation a python3-venvdonné l'erreur:

$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python3-venv : Depends: python3.6-venv (>= 3.6.5-2~) but it is not going to be installed
                Depends: python3 (= 3.6.5-3) but 3.6.7-1~18.04 is to be installed
E: Unable to correct problems, you have held broken packages.

Et il semble que le dépôt apt avait deux versions de python:

$ apt list python3 -a
python3/bionic-updates,now 3.6.7-1~18.04 amd64 [installed]
python3/bionic 3.6.5-3 amd64

J'ai essayé d'installer Python3.6.5-3mais apt voulait désinstaller toutes les dépendances. J'ai pu résoudre le problème en installant Python3.7 et en créant le venv avec ça:

$ sudo apt-get install python3.7 python3.7-venv
$ python3.7 -m venv my_venv

1
Cela a fonctionné pour moi. A fait sudo apt install python3.8 python3.8-venvet créé l'environnement virtuel en utilisant python3.8 -m venv venv_name. Merci!
Amir A. Shabani

5

J'ai rencontré ce problème sur Ubuntu 18.04 pour la version récente de Python-3.8 . Ma solution était d'ajouter le PPA Deadsnakes qui fournit le python3.8-distutilspackage requis . Le python3.8-venvpackage est déjà dans le référentiel. Merci à ce blog :

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
sudo apt install python3.8-distutils
sudo apt install python3.8-venv

Remarque: ce n'est qu'une solution temporaire. Dans un proche avenir, le python3.8-distutilspackage requis sera probablement disponible dans le référentiel Ubuntu par défaut.

Éditer:

Pour Ubuntu 20.04 LTS, le package python3-distutils est basé sur Python 3.8. Pour l'instant, il n'y a pas de package distutils du package Python 3.8 disponible pour Ubuntu 18.04 LTS.

Comme mentionné dans d'autres commentaires sur ce fil, distutilspeut ne pas être nécessaire. C'était pour mon cas d'utilisation, mais veuillez considérer cette solution avant d'ajouter des PPA supplémentaires.


1
sudo apt install python3.8-venva été le gagnant pour moi. Toutes les autres aides que j'ai pu trouver m'ont fait essayer d'installer à la python3-venvplace.
user1717828 le

4

Résolution de problèmes similaires sur Ubuntu18 lors de cette réponse . Il est similaire à celui qui a fonctionné pour @Niko Rikken, accept n'a pas vraiment besoin de nouveau PPA et de package "python3.8-distutils". J'installais un nouvel environnement python3.8 avec venv et j'avais déjà "python3-venv" installé et à jour, donc ma solution était d'installer uniquement "python3.8-venv":

% sudo apt-get install python3.8-venv

Et cela a fait fonctionner ces lignes:

% python3.8 -m venv ~/envs/new_env
% source ~/envs/new_env/bin/activate

3

Essayez: python3.* -m venv myvenv -

Et n'oubliez pas de remplacer * par votre version spécifique de python


2

J'ai eu le même problème - le python env a 2 versions pour 2.7 et 3.6.

Tout ce que vous avez à faire est:

  1. Installez la dernière version de pip en installant le programme d' installation de pyenv
  2. Assurez-vous de suivre les étapes d'installation de pyenv trouvées ici

Bonne chance!


2

Si votre intention était d'obtenir python3.8 incl. pip et venv sur Ubuntu 18.04:

  • sudo apt install python3.8 python3.8-venv python3-pip # il n'y a pas de paquet python3.8-pip
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version # -> python 3.8.0
  • pip --version # -> pip 9.0.1 depuis /home/user/venv/lib/python3.8/site-packages (python 3.8)

2

J'ai été confronté au même problème et je cherche une solution. Il s'agit du problème:

ensurepip est désactivé dans Debian / Ubuntu pour le système python.

Et voici ma solution:

python3 -m venv myvenv --without-pip --system-site-packages

Notez qu'un environnement python sans pippourrait ne pas être très utile.
ankostis

2

Essayez les commandes suivantes:

sudo apt install python-virtualenv
virtualenv --python=python3.6 myenv

Ces commandes peuvent fonctionner pour vous.

Si vous obtenez une erreur du type E: Unable to locate package python3-venv Ensuite, essayez les commandes suivantes:

sudo apt install python3.6-venv

1

J'ai eu le même problème pour un projet existant lors de l'exécution python3 -m venv venv. Je venais de mettre à jour mes versions Ubuntu et Python. Après avoir supprimé le venvdossier déjà existant , le problème a été résolu. (J'ai également essayé la solution UTF-8 .)


1

Mon problème était lié aux autorisations et à la propriété. J'étais connecté avec un utilisateur différent en tant que propriétaire du répertoire actuel, ce qui a conduit à cette erreur. Après avoir examiné et corrigé toutes les autorisations, j'ai pu installer le venv regularl


C'était exactement mon problème. Lorsque je suis passé au répertoire de base des utilisateurs actuels, la commande a bien fonctionné. Cela doit être un bogue où il suppose que python3-venv n'est pas installé lorsqu'il rencontre un problème d'autorisations.
Cosmicnet

0

Toutes ces suggestions ne m'ont pas aidé.

$ apt list python3 -a
python3/now 3.6.7-1~18.04 amd64 [installed,local]
python3/bionic 3.6.5-3 amd64

Alors j'ai fait: sudo apt-get install python3/bionic

Maintenant, j'ai python 3.6.5 et apt-list a montré une meilleure liste: $ apt list python3 -a python3 / bionic 3.6.5-3 amd64

Avec sudo apt-get install python3-venv/bionicj'ai pu installer pythno3-venv et tout a fonctionné.


J'utilise ubuntu environ 5 ans activement mais je n'ai jamais vu auparavant cette syntaxe "python3 / bionic": O votre réponse a résolu mon problème merci.
kodmanyagha le

Heureux que cela fonctionne, je ne connaissais pas non plus cette syntaxe, j'ai simplement essayé parce que "apt list" montrait les paquets de cette façon ;-) Si cette réponse vous aidait, vous pourriez appuyer sur le bouton "up".
Stefan

Si vous pouvez utiliser des noms de package non standard, cela signifie que vous avez configuré des sources de package non standard. apt-cache policy python3/bionicpourrait vous aider à déterminer d'où vient ce paquet. Ce n'est pas d'Ubuntu.
tripleee

0

Dans mon cas, l'exécution sudo apt-get install python3.8-venvréussit mais elle montre la même erreur lors de l'exécution python3 -m venv .venv.

Enfin, cette commande fonctionne sans changer les paramètres régionaux.

python3.8 -c 'import venv; venv.create(".venv", with_pip=True)'


0

Cela a fonctionné pour moi ... Premièrement, j'ai couru

sudo apt-get update

ensuite

sudo apt-get install -y python3-venv zip


-1
sudo apt-get update 

A travaillé pour moi.

Edit: J'adorerais savoir exactement quel était le problème, mais je ne sais pas. J'ai essayé d'exécuter des commandes comme décrit par l'interrogateur et cela donnait une erreur, puis j'ai mis à jour et cela a fonctionné. :-RÉ


3
Veuillez expliquer pourquoi votre réponse résout la question.
RyanNerd

1
L'exécution de commandes et la mise à jour de l'arborescence des paquets ne constituent pas une réponse, veuillez préciser
Andres Felipe

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.