pyvenv funktioniert nicht, da sichergestellt ist, dass kein Pip verfügbar ist


88

Ich habe vor ein paar Tagen ein Upgrade von Ubuntu 14.04 auf Ubuntu 16.04 durchgeführt. Wenn ich versuche, mithilfe von eine virtuelle Umgebung zu erstellen

pyvenv .venv

oder

python3 -m venv .venv

Es gibt einen Fehler:

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']

Ich habe versucht, beide auszuführen

sudo apt-get install python3-venv

und

sudo apt-get install python3.5-venv

aber es hat mein Problem nicht gelöst.


Mein Problem ist unter Betriebssystem mit Release-Informationen gelöst: Distributor ID: LinuxMint Beschreibung: Linux Mint 18.3 Sylvia Release: 18.3
nix

Keine der Antworten hat es für mich gelöst. immer noch auf den gleichen Fehler stecken
Shoaib Iqbal

Antworten:


114

Es scheint, dass es ein Gebietsschemaproblem war. Gelöst durch Ausführen von:

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

In diesem Thread gefunden Python-Gebietsschema-Fehler: Nicht unterstützte Gebietsschemaeinstellung


34
Es ist verrückt, aber es ist wahr
user1703761

8
Wirklich neugierig, aber jemand weiß was der Grund ist?
Juan Antonio

funktionierte nicht für mich unter Betriebssystem mit Distributionsinfo: Distributor ID: LinuxMint Beschreibung: Linux Mint 18.3 Sylvia Release: 18.3
nix

1
Vielen Dank, dass Sie hier ein minimales Docker-Setup ausführen. Ich hätte es nie gedacht.
Antti Haapala

1
@JuanAntonio Es scheint, dass Ubuntu (mindestens 16.04) ein sofort einsatzbereites Nicht-Unicode-Bistro ist, wie in dieser Ausgabe erwähnt: tickets.puppetlabs.com/browse/IMAGES-498 Vermutlich sollten wir unserem Server-Bootstrapping Gebietsschemaeinstellungen hinzufügen. .
Andreas Bergström

108

Versuchen Sie, python3.6-venv zu installieren:

sudo apt-get install python3.6-venv

Danke für die Lösung. Es funktionierte am 16.04 (vorausgesetzt, Python3.6 war natürlich bereits installiert). Was ich NICHT verstehe, ist Folgendes: 1. venv sollte die Verwendung von apt-get genau unnötig machen. Es ist Teil der Standardbibliothek. 2. Warum ist die Standardversion von pip using venv nicht die neueste Version?
Lionel Trebuchon

26
... oder sudo apt-get install python3.7-venvwenn Sie Python 3.7
Alleo

12
... oder sudo apt-get install python3.8-venvwenn Sie Python 3.8
Cowlinator verwenden

3
... oder sudo apt-get install python3.9-venvwenn Sie Python 3.9 (für die Zukunft) verwenden
Andrey Semakin

7
... oder sudo apt-get install python3.10-venvwenn Sie Python 3.10 verwenden (falls wir 2020 überleben)
Steven667

44

Eine der anderen Antworten hat es beim letzten Mal für mich behoben, aber mit Python 3.7 musste ich Folgendes tun:

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

gefolgt von

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

22

Unter Windows Linux Subsystem und Ubuntu 18.04 wurde dies dadurch verursacht, dass ich kürzlich kein Upgrade durchgeführt habe.

Ich rannte:

sudo apt update
sudo apt upgrade

Dann hat sudo apt install python3-venvgearbeitet.

Beachten Sie, dass ich zuvor auch die UTF-8-Lösung ausprobiert hatte (ich habe sie zu einem Teil meiner gemacht .bashrc), sodass dies ein Faktor sein könnte.


4
Ich denke nicht, dass die UTF-8-Lösung wichtig ist. Ich bin auch auf WSL Ubuntu 18.04 und die Schritte sudo apt updateund sudo apt install python3-venvwaren ausreichend.
Theja

1
Dies ist die einzige Lösung, die für mich funktioniert hat! Ich habe versucht, das Gebietsschema zu ändern und eine neuere Version von Python ohne Erfolg zu
installieren

2
Das hat auch bei mir funktioniert, ich habe verschiedene andere Optionen ausprobiert. Es hat nicht funktioniert.
Lernender

genial, hat für mich gearbeitet !!!
Reckoner

9

In meinem Fall haben die nächsten Schritte funktioniert:

  • 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

Falls dies irgendjemandem auf der ganzen Linie hilft, habe ich unter Ubuntu 18.04 den gleichen Fehler erhalten. Das Festlegen der Gebietsschemas funktionierte nicht und der Versuch der Installation python3-venvergab den Fehler:

$ 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.

Und es sieht so aus, als hätte das apt-Repository zwei Versionen von Python:

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

Ich habe versucht zu installieren, Python3.6.5-3aber apt wollte jede Abhängigkeit deinstallieren. Ich konnte das Problem lösen, indem ich Python3.7 installierte und das venv damit erstellte:

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

1
Das hat bei mir funktioniert. Hat sudo apt install python3.8 python3.8-venvund erstellt die virtuelle Umgebung mit python3.8 -m venv venv_name. Vielen Dank!
Amir A. Shabani

5

Ich habe dieses Problem unter Ubuntu 18.04 für die aktuelle Version von Python-3.8 festgestellt . Meine Lösung bestand darin, die Deadsnakes PPA hinzuzufügen, die das erforderliche python3.8-distutilsPaket liefert . Das python3.8-venvPaket befindet sich bereits im Repository. Danke an diesen Blogpost :

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

Hinweis: Dies ist nur eine vorübergehende Lösung. In naher Zukunft wird das erforderliche python3.8-distutilsPaket wahrscheinlich im Standard-Ubuntu-Repository verfügbar sein.

Bearbeiten:

Für Ubuntu 20.04 LTS basiert das Paket python3-distutils auf Python 3.8. Für Ubuntu 18.04 LTS ist noch kein Python 3.8-Paket distutils-Paket verfügbar.

Wie in anderen Kommentaren zu diesem Thread erwähnt, ist dies distutilsmöglicherweise nicht erforderlich. Es war für meinen Anwendungsfall, aber bitte berücksichtigen Sie diese Lösung, bevor Sie zusätzliche PPAs hinzufügen.


1
sudo apt install python3.8-venvwar der Gewinner für mich. Bei all der anderen Hilfe, die ich finden konnte, versuchte ich python3-venvstattdessen zu installieren .
user1717828

4

Ähnliche Probleme unter Ubuntu18 wurden behoben, als diese Antwort gefunden wurde . Es ähnelt dem, das für @Niko Rikken funktioniert hat. Accept benötigt keine neuen PPAs und kein "python3.8-distutils" -Paket. Ich habe eine neue Python3.8-Umgebung mit venv installiert und ich hatte bereits "python3-venv" installiert und auf dem neuesten Stand, daher bestand meine Lösung darin, nur "python3.8-venv" zu installieren:

% sudo apt-get install python3.8-venv

Und das hat diese Zeilen zum Laufen gebracht:

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

3

Versuchen : python3.* -m venv myvenv -

Und vergessen Sie nicht, * durch Ihre spezifische Python-Version zu ersetzen


2

Ich hatte das gleiche Problem - die Python-Umgebung hat 2 Versionen für 2.7 und 3.6.

Alles was Sie tun müssen ist:

  1. Installieren Sie die neueste Version von pip, indem Sie das pyenv- Installationsprogramm installieren
  2. Stellen Sie sicher , dass Sie die Schritte der Installation pyenv folgen gefunden hier

Viel Glück!


2

Wenn Sie Python3.8 inkl. pip und venv auf Ubuntu 18.04:

  • sudo apt install python3.8 python3.8-venv python3-pip # Es gibt kein python3.8-pip-Paket
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version # -> Python 3.8.0
  • pip --version # -> pip 9.0.1 von /home/user/venv/lib/python3.8/site-packages (Python 3.8)

2

Ich war mit dem gleichen Problem konfrontiert und suche nach einer Lösung. Es geht um das Problem:

surepip ist in Debian / Ubuntu für die Systempython deaktiviert.

Und das ist meine Lösung:

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

Beachten Sie, dass eine Python-Umgebung ohne diese pipmöglicherweise nicht so nützlich ist.
Ankostis

2

Versuchen Sie die folgenden Befehle:

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

Diese Befehle funktionieren möglicherweise für Sie.

Wenn Sie eine Fehlermeldung erhalten, E: Unable to locate package python3-venv versuchen Sie die folgenden Befehle:

sudo apt install python3.6-venv

1

Ich hatte das gleiche Problem für ein vorhandenes Projekt bei der Ausführung python3 -m venv venv. Ich hatte gerade meine Ubuntu- und Python-Versionen aktualisiert. Nach dem Entfernen des bereits vorhandenen venvOrdners wurde das Problem behoben. (Ich habe auch die UTF-8-Lösung ausprobiert .)


1

Mein Problem bezog sich auf Berechtigungen und Besitz. Ich war mit einem anderen Benutzer als Eigentümer des aktuellen Verzeichnisses angemeldet, was zu diesem Fehler führte. Nachdem ich alle Berechtigungen überprüft und korrigiert hatte, konnte ich das venv normal installieren


Das war genau mein Problem. Als ich zum Ausgangsverzeichnis des aktuellen Benutzers wechselte, lief der Befehl einwandfrei. Dies muss ein Fehler sein, bei dem davon ausgegangen wird, dass python3-venv nicht installiert ist, wenn tatsächlich ein Berechtigungsproblem auftritt.
Cosmicnet

0

All diese Vorschläge haben mir nicht geholfen.

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

So tat ich: sudo apt-get install python3/bionic

Jetzt habe ich Python 3.6.5 und apt-list zeigte eine bessere Liste: $ apt list python3 -a python3 / bionic 3.6.5-3 amd64

Mit sudo apt-get install python3-venv/bionickonnte ich pythno3-venv installieren und alles hat funktioniert.


Ich benutze Ubuntu ungefähr 5 Jahre aktiv, aber ich habe noch nie zuvor die Syntax "python3 / bionic" gesehen: O deine Antwort hat mein Problem gelöst, danke.
Kodmanyagha

Ich bin froh, dass es funktioniert, ich kannte diese Syntax auch nicht, ich habe es einfach versucht, weil "apt list" die Pakete so angezeigt hat ;-) Wenn diese Antwort Ihnen geholfen hat, könnten Sie die "up" -Taste drücken.
Stefan

Wenn Sie nicht standardmäßige Paketnamen verwenden können, bedeutet dies, dass Sie nicht standardmäßige Paketquellen konfiguriert haben. apt-cache policy python3/bionickönnte Ihnen helfen, herauszufinden, woher dieses Paket kommt. Es ist nicht von Ubuntu.
Tripleee

0

In meinem Fall ist das Ausführen sudo apt-get install python3.8-venverfolgreich, es wird jedoch beim Ausführen der gleiche Fehler angezeigt python3 -m venv .venv.

Schließlich funktioniert dieser Befehl, ohne das Gebietsschema zu ändern.

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


0

Das hat bei mir funktioniert ... Erstens bin ich gerannt

sudo apt-get update

Dann

sudo apt-get install -y python3-venv zip


-1
sudo apt-get update 

Hat für mich gearbeitet.

Edit: Ich würde gerne wissen, was genau das Problem war, aber ich weiß es nicht. Ich habe versucht, Befehle auszuführen, wie vom Fragesteller beschrieben, und es gab einen Fehler, dann habe ich aktualisiert und es hat funktioniert. :-D


3
Bitte erläutern Sie, warum Ihre Antwort die Frage löst.
RyanNerd

1
Das Ausführen von Befehlen und das Aktualisieren des Paketbaums stellen keine Antwort dar. Bitte erläutern Sie dies
Andres Felipe,

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.