Erstellen Sie eine virtuelle Python 3-Umgebung

13

Ich habe python3-virtualenvauf Lubuntu 15.1 mit dem offiziellen Ubuntu-Paket installiert apt-get install python3-virtualenv. Aus der offiziellen Dokumentation geht hervor , dass ein einfaches virtualenv .in meinem Projektverzeichnis ausreichen sollte, um das venv zu erstellen. Das macht nichts, weil which virtualenves nichts macht. (Nichts von which python-virtualenvund which python3-virtualenvauch).

Die einmal installierten Paketinformationen besagen, dass sie installiert sind /usr/lib/python3/dist-packages/virtualenv.py, daher rufe ich sie unter python3 auf. Es gibt mir Folgendes:

$ python3 /usr/lib/python3/dist-packages/virtualenv.py .
Running virtualenv with interpreter /usr/bin/python2
New python executable in ./bin/python2
Also creating executable in ./bin/python
Installing setuptools, pip...done.

Ja, wenn ich nachschaue, ist alles in ./bin python2. Ist Ubuntus python3-virtualenv ein Dummy-Paket für python2?

In der offiziellen Python-Dokumentation heißt es, ein anderes Paket zu verwenden: python3-venv . Dies scheint zu funktionieren, wenn ich pyvenv .mit Python3-Sachen im ./binVerzeichnis bin .

Wie kann ich eine virtuelle Python 3-Umgebung erfolgreich erstellen?

Escher
quelle
Der Patch, der dieses Verhalten in Debian ändert. salsa.debian.org/python-team/modules/python-virtualenv/blob/… Ich wünschte, ich hätte den Denkprozess verstanden, der verwendet wurde, als dieser Patch hinzugefügt wurde.
Winny

Antworten:

24

venvist ein praktisches Skript zum Erstellen virtueller Umgebungen, ersetzt jedoch nicht alles, was möglich virtualenvist. Die Verwendung von beidem ist jedoch in den meisten Fällen in Ordnung. virtualenvist nicht veraltet.

python3 -m venvfunktioniert nach der Installation, python3-venvda Debian einige Skripte aus dem Basis-Python-Paket entfernt. python3-virtualenvSetzt das virtualenvSkript aus irgendeinem Grund nicht in Ihren Pfad, python-virtualenvtut es aber und funktioniert für beide Versionen einwandfrei.

Es ist nicht wichtig, für welche Version virtualenvinstalliert ist, es kann Envs für jede installierte Version durch Übergeben erzeugen -p pythonX(wobei X die Version ist). venvDa dies einfacher ist, werden nur Envs der Version erstellt, von der aus es ausgeführt wird, und es ist erst seit 3.3 verfügbar.

$ sudo apt-get install python-virtualenv
$ virtualenv -p python3 env
$ source ./env/bin/activate
$ sudo apt-get install python3-venv
$ python3 -m venv env
$ source ./env/bin/activate
Davidismus
quelle