malikarumi@Tetouan2:~$ pip install virtualenv
Collecting virtualenv
Downloading virtualenv-12.0.7-py2.py3-none-any.whl (1.8MB)
100% |################################| 1.8MB 330kB/s
malikarumi@Tetouan2:~$ pip freeze
(a lot of stuff, but not virtualenv)
malikarumi@Tetouan2:~$ virtualenv testvenv1
The program 'virtualenv' is currently not installed. You can install it by typing:
sudo apt-get install python-virtualenv
Was geht hier vor sich? ist python-virtualenv == pyvenv? Ist das nicht noch kaputt? Funktioniert original virtualenv noch mit Python? Wenn venv (zu viele Namensvariationen !!!) Teil der Standardbibliothek ist, https://docs.python.org/3/library/venv.html , warum muss ich es installieren?
Und als ich versuchte, es zu installieren, bekam ich:
malikarumi@Tetouan2:~$ sudo apt-get install python-virtualenv
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
python-colorama python-distlib python-html5lib python-pip python-setuptools
An welcher Stelle habe ich abgebrochen, weil mir die Installation von python3-pip kurz zuvor gegeben hatte
Setting up python3-setuptools (3.3-1ubuntu1) ...
Setting up python3-pip (1.5.4-1) ...
Und ich war mir nicht sicher, ob die zusätzlichen Pakete sie überschreiben oder auf Python 2.7 gehen würden.
Ich habe gelesen, dass Python 3 in Zukunft die Standardeinstellung sein soll. Da sowohl 2.7 als auch 3.4 vorhanden sind und separate Befehle haben, wie kann ich dann nicht nur sicherstellen, dass Python 3 meine Standardeinstellung ist, sondern dass alles, was ich installiere, dort abgelegt wird und von Python 3 anstelle von 2.7 verwendet wird?
Übrigens habe ich sudo apt-get python3-virtualenv ausprobiert und Folgendes erhalten: E: Das Paket python3-virtualenv konnte nicht gefunden werden
quelle
Antworten:
Die Installation von Python 3.x-Paketen in einer virtuellen Python-Umgebung erfolgt durch Erstellen der virtuellen Python-Umgebung mit Python 3 Virtual Environment Creator ( python3-virtualenv ). python3-virtualenv ist in den Ubuntu-Standardrepositorys in Ubuntu 14.10 und höher enthalten.
Installieren Sie Python 3.x-Pakete in einer virtuellen Python-Umgebung ab 16.04
Installieren Sie Python 3 Virtual Environment Creator
Erstellen Sie eine virtuelle Python-Umgebung für python3. Sie können nur Python3-Pakete in dieser virtuellen Python-Umgebung installieren. Wenn Sie auch Python 2.x-Pakete installieren möchten, müssen Sie eine andere virtuelle Python-Umgebung erstellen.
Die neue virtuelle Python-Umgebung für python3 wird in dem
env
Verzeichnis erstellt, das sich im aktuellen Verzeichnis befindet.Installieren Sie Python-Pakete.
Dies ist eine neue virtuelle Python3-Umgebung mit der neuesten Version von pip3. Die Installation von Python-Paketen funktioniert also hervorragend.
Installieren Sie Python 3.x-Pakete in einer virtuellen Python-Umgebung in Ubuntu 14.04
Fügen Sie die folgende Zeile am Ende von .bashrc hinzu.
Speichern Sie die Änderungen an .bashrc und schließen Sie gedit. Beschreiben Sie Ihre .bashrc-Datei, damit die Änderungen wirksam werden.
Erstellen Sie eine virtuelle Python-Umgebung für python3. Sie können nur Python3-Pakete in dieser virtuellen Python-Umgebung installieren. Wenn Sie auch Python 2.x-Pakete installieren möchten, müssen Sie eine andere virtuelle Python-Umgebung erstellen.
Die neue virtuelle Python-Umgebung für python3 wird im
~/.virtualenvs/py3
Verzeichnis erstellt..virtualenvs
ist ein versteckter Ordner.Installieren Sie ein Paket.
quelle
python3-virtualenv
undpython3-venv
Pakete zur Verfügung. Ich gehe davon aus, dasspython3-venv
es sich um das richtige Paket handelt. In diesem Fall habe ich keine Ahnung, wozu espython3-virtualenv
dient.virtualenv
(ausführbare Datei) verwenden, um eine Umgebung mit einem beliebigen Interpreter, einschließlich PyPy, zu erstellenvirtualenv -p python3 newenv
.Nun, es wird kompliziert. Das Folgende wird gegen Ubuntu Xenial (das zugrunde liegende Release für Linux Mint I) gezeigt. Lass es uns klären:
Pyvenv
Es bezieht sich auf das Wrapper-Skript des Python 3.3+ -Stdlib-Pakets . Aber es wurde seit Python 3.6 veraltet.
Es ist auch ein PyPi-Paket , bei dem es sich um einen Umschalter für virtuelle Umgebungen handelt.
venv
Es handelt sich um das stdlib-Paket für Python 3.3+ , dessen Zweck darin bestand, das virtuelle PyPi-Paket zu verbessern und zu ersetzen (siehe PEP 405 ). Aber es scheint, dass es noch nicht da ist (zumindest nicht so vollständig).
python-virtualenv und virtualenv
Wie Sie sehen, läuft es auf Python 3.
python-virtualenv
Paket soll wie verwendet werdenpython2 -m virtualenv py2
. Mal sehen, wie esvirtualenv
mit frischem Ubuntu Xenial (docker run --rm -it ubuntu:xenial
) funktioniert :Wie Sie sehen können , wird standardmäßig eine Python 2-Umgebung erstellt, obwohl das
virtualenv
Paket verwendet wirdpython3-virtualenv
.quelle