Virtualenv: Fehler beim Erstellen von Virtualenv mit Python3.6

Erstellt am 22. Juni 2017  ·  24Kommentare  ·  Quelle: pypa/virtualenv

Heute früh habe ich Python3.6 auf meinem Debian-Rechner installiert. Python3.6 wurde in der Buster-Distribution zur Verfügung gestellt. Wenn ich versuche, eine Virtualenv mit python3.6.

python3.6 -m venv venv

gibt folgenden Fehler aus.

Die virtuelle Umgebung wurde nicht erfolgreich erstellt, da surepip nicht verfügbar ist. Auf Debian/Ubuntu-Systemen müssen Sie das Paket python3-venv mit dem folgenden Befehl installieren.

apt-get install python3-venv

Möglicherweise müssen Sie mit diesem Befehl sudo verwenden. Nach der Installation von python3-venv
Paket, erstellen Sie Ihre virtuelle Umgebung neu.

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

Ich habe python3-venv (3.5.3-1) installiert. Warum erhalte ich diesen Fehler? Wenn ich den Befehl ausführe

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

es sagt

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

Ich habe keine Probleme beim Erstellen von Virtualenvs mit der Standard-Python3-Version (3.5.3).

Außerdem ist mir aufgefallen, dass ich eine Virtualenv wie folgt erstellen kann:

virtualenv -p python3.6 venv

Hilfreichster Kommentar

Das Problem des ursprünglichen Posters ist darauf zurückzuführen, dass das Paket 'python3.6-venv' nicht installiert ist, das mit Docker überprüft werden kann, wenn Sie keinen Zugriff auf ein Buster-Debian haben:

$ 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

Installieren Sie 'python3.6-venv', und es sollte funktionieren.

Alle 24 Kommentare

Hallo,

virtualenv und python3 venv eigenes Modul sind 2 völlig unterschiedliche Projekte/Dinge.

venv macht dasselbe wie virtualenv, ist aber direkt in Python3 selbst integriert.
virtualenv ist im Grunde das historische Projekt (und sollte normalerweise nicht mit Python3 verwendet werden, solange es venv gibt).

Basierend auf Ihren Eingaben würde ich sagen, dass python3-venv möglicherweise auf Ihrer Seite neu installiert wird ( sudo apt-get reinstall python-venv oder etwas Ähnliches). Aber ich kann falsch liegen. Wie auch immer, das sieht aus wie alles, was mit Debian zu tun hat, da bin ich mir ziemlich sicher.

Können Sie das Thema also schließen? (Ich bin hier kein Betreuer)
Grüße.

Neuinstallation hat nicht funktioniert. Ich werde dieses Thema jetzt schließen. Ich werde aktualisieren, wenn ich weitere Informationen habe.

@animeshb , du hast danach keine Ausgabe mehr

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

Nichts nach dieser Zeile.

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

Im Ordner venv/bin gibt es keinen Aktivierungsbefehl.

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

Ich kann Sie nur auf eine von vielen Seiten umleiten, die diesem Fehler entsprechen (es ist ein bekanntes Problem bei debian/ubuntu-Systemen):

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

Was ist mit sudo apt-get install python3-pip ?

Das Problem des ursprünglichen Posters ist darauf zurückzuführen, dass das Paket 'python3.6-venv' nicht installiert ist, das mit Docker überprüft werden kann, wenn Sie keinen Zugriff auf ein Buster-Debian haben:

$ 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

Installieren Sie 'python3.6-venv', und es sollte funktionieren.

Wow, es kam mir überhaupt nicht in den Sinn, dass es ein versionsspezifisches -venv-Paket geben würde. Die Installation hat den Trick gemacht.

@gst und @eukaryote Vielen Dank, dass Sie Ihre Zeit mit diesem Thema verbracht haben.

Die Lösung von @eukaryote hat bei mir funktioniert. Danke, dass du das gepostet hast!

Ein falsch konfiguriertes Gebietsschema kann dieses Problem ebenfalls verursachen, da diese Antwort mein Problem löst, das dieselbe Fehlermeldung wie OP erzeugt.

Versuchen Sie auszuführen:

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

nur ein Datenpunkt, aber beim Herumspielen mit einer frischen Virtualbox-Ubuntu-Bionik stellte ich fest, dass apt install python3.6-venv immer noch ein kaputtes python3.6 -m venv hinterließ, aber das Ausführen von apt install python3-venv behoben.

Ich bin auf Debian Testing/Buster und habe das gleiche Problem, während sowohl python3.6-venv als auch python3-venv installiert sind.

Der Debian-Bug dafür ist übrigens hier: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601

nikolas
Sie schreiben dort, dass es in der letzten Version repariert ist. Also habe ich gemacht
apt purge python3.6-venv
dpkg -i --force-depends-version python3.6-venv_3.6.6~rc1-3_amd64.deb # from snapshot.debian.org
und bei mir funktioniert es.
Wahrscheinlich brauche ich später eine Korrektur: apt --fix-broken install

Hinterlasse hier einfach einen Kommentar für diejenigen, die nach mir kommen und nach dem gleichen Problem googeln:

das gleiche gilt für 3.7 von python, du musst python3.7-venv installieren, also apt-get install python3.7-venv

Nur zur Info, die obige Lösung funktioniert tatsächlich nicht für Python 3.7. apt install python3.7 python3.7-venv auf einem Stock-Buster-Docker-Image erzeugt immer noch eine defekte virtuelle Umgebung ("ensurepip is not available"). Nach apt install python3-venv (wodurch unnötigerweise alle Python3.6 installiert wird) können Sie jedoch mit python3.7 -m venv myvenv ein funktionierendes Python 3.7-Venv erstellen, das einen richtigen 3.7-Pip enthält. Der vollständige Arbeitsbefehlssatz ist also dieser:

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

(Beachten Sie übrigens, dass alle python3.7-venv Installationen ein Dummy-Systemmodul ensurepip .)

Sie sprechen von venv , einem anderen Projekt. Dieser Tracker ist für virtualenv.

Ich stand auch vor dem gleichen Problem.

[ niraj@abc ~]$/python/v3.7.0/bin/python3 -m venv avd
Fehler: Befehl '['/home/niraj/avd/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' gab einen Ausgangsstatus ungleich Null zurück.

Nachdem ich libffi3.3 zu meinem LD_LIBRARY-Pfad hinzugefügt habe, funktioniert es

setenv LD_LIBRARY_PATH /libffi/v3.3/lib64

Zuerst habe ich mit sudo apt install python3-venv installiert und hatte das gleiche Problem und es wurde gelöst durch: sudo apt install python3.6-venv

@eukaryote hat immer noch nicht funktioniert. Kannst du helfen? Ich verwende Ubuntu 18.04 LTS

Ein falsch konfiguriertes Gebietsschema kann dieses Problem ebenfalls verursachen, da diese Antwort mein Problem löst, das dieselbe Fehlermeldung wie OP erzeugt.

Versuchen Sie auszuführen:

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

Dies funktioniert für mich unter Ubuntu 16.04.6. Vielen Dank

Ein falsch konfiguriertes Gebietsschema kann dieses Problem ebenfalls verursachen, da diese Antwort mein Problem löst, das dieselbe Fehlermeldung wie OP erzeugt.

Versuchen Sie auszuführen:

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

Danke schön

Wow, die Installation der spezifischen Version von venv hat bei mir funktioniert. In meinem Fall python3.8-venv.

Danke @jrperin

Die Installation der spezifischen Version hat auch bei mir funktioniert: python3.8-venv

Wenn die Betriebssystemversion 18.04 oder 20.04 ist:

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

Zusätzliche unterstützende Software
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen