Ich habe ein Debian-System, das derzeit mit Python 2.5.4 ausgeführt wird. Ich habe virtualenv richtig installiert, alles funktioniert gut. Gibt es eine Möglichkeit, dass ich eine virtuelle Umgebung mit einer anderen Version von Python verwenden kann?
Ich habe Python 2.6.2 kompiliert und möchte es mit einigen virtuellen Umgebungen verwenden. Reicht es aus, die Binärdatei zu überschreiben? Oder muss ich etwas an den Bibliotheken ändern?
Antworten:
Verwenden Sie beim Erstellen Ihrer virtualenv-Instanz einfach die Option
--python
(oder kurz-p
), um die ausführbare Python-Datei anzugeben, die Sie verwenden möchten, z.NB Informationen zu Python 3.3 oder höher finden Sie in der Antwort von The Aelfinn unten.
quelle
virtualenv -p `which python2.6` <path/to/new/virtualenv>
Seit Python 3 schlagen die Python-Dokumente vor , die virtuelle Umgebung mit dem folgenden Befehl zu erstellen:
Bitte beachten Sie, dass
venv
das Erstellen virtueller Umgebungen mit anderen Python-Versionen nicht möglich ist. Installieren und verwenden Sie dazu dasvirtualenv
Paket .Veraltete Informationen
Mit dem
pyvenv
Skript kann eine virtuelle Umgebung erstellt werdenaber es ist seit Python 3.6 veraltet.
quelle
python3 -m venv <envname>
zu verhindern, dass für alles Stub-Skripte benötigt werden.pyvenv
Skript in Python 3.6+ veraltet , das zugrunde liegendevenv
Modul selbst jedoch nicht. Verwenden Sie also,python 3 -m venv <myenvname>
wie @PaulEveritt sagt.pyvenv
oderpython3 -m venv ...
installieren Sie daspython-config
Skript NICHT . Dies bedeutet, dass das System auch nach Aktivierung Ihrer Python3-Umgebungpython-config
mit verwirrenden Konsequenzen aufgerufen wird. Siehe diesen Fehlerbericht von 2011 github.com/pypa/virtualenv/issues/169 und meine Frage stackoverflow.com/questions/42020937/…venv
das Erstellen von virtualenv mit anderen Python-Versionen nicht möglich ist." - Bist du sicher, dass das wahr ist? Es scheint für mich gut zu funktionieren, wenn ich es mit einer bestimmten Python-Version erstelle, z. B.python3.5 -m venv <myenvname>
(vorausgesetzt, ich habe diese Version von Python zur Verfügung).venv
mit einer bestimmten Python-Version zu erstellen, besteht darin, diese Version beim Einrichten zu verwenden. Zum Beispiel:python3.5 -m venv venv
Dies sind die Schritte, die Sie ausführen können, wenn Sie sich in einer gemeinsam genutzten Hosting-Umgebung befinden und Python aus dem Quellcode installieren und kompilieren und dann
venv
aus Ihrer Python-Version erstellen müssen . Für Python 2.7.9. Sie würden etwas in diese Richtung tun:virtuelle Umgebung
Dies kann natürlich auf jede Situation angewendet werden, in der Sie die genaue Umgebung replizieren möchten, in der Sie arbeiten und die Sie bereitstellen.
quelle
~/.localpython/bin/virtualenv
statt nurvirtualenv
für die Einrichtung verwenden, um ohne Fehler abzuschließen. Verwenden Sie außerdemsource ve/bin/activate
anstelle vonsource activate
.quelle
-p
.python3.6
aber nichtpython3.5
auf Ihrem Computer installiert berühren ?Es gibt einen einfacheren Weg,
Dank eines Kommentars funktioniert dies nur, wenn Sie Python2.7 auf Systemebene installiert haben (z. B. /usr/bin/python2.7).
Wenn Sie Homebrew verwenden, können Sie den Pfad verwenden, um das zu erhalten, was Sie möchten.
Sie finden den Pfad zu Ihrer Python-Installation mit
Dies funktioniert auch mit Python 3.
Letztendlich verdichtet zu:
quelle
virtualenv venv --python=python3.6
als auchvirtualenv env --python=python2
virtualenv venv --python=<insert_your_python_version_here>
Wo<insert_your_python_version_here>
war in meinem FallC:\Python\Python368\python.exe
Unter Windows funktioniert das für mich:
Ohne das
python.exe
habeWindowsError: [Error 5] Access is denied
ich Python2.7.1 mit virtualenv 1.6.1 installiert und wollte Python 2.5.2.quelle
Mac OSX 10.6.8 (Schneeleopard):
1) Wenn Sie dies tun
pip install virtualenv
, wird der Befehl pip einer Ihrer Python-Versionen zugeordnet undvirtualenv
in dieser Python-Version installiert. Du kannst tunum zu sehen, welche Version von Python das ist. Wenn Sie so etwas sehen wie:
dann mach:
Sie können die Python-Version in der Ausgabe sehen.
Standardmäßig ist dies die Version von Python, die für jede neue Umgebung verwendet wird, die Sie erstellen. Sie können jedoch jede auf Ihrem Computer installierte Python-Version angeben, die in einer neuen Umgebung verwendet werden soll
-p flag
:http://docs.python-guide.org/en/latest/dev/virtualenvs/
virtualenv
Kopiert Python einfach von einem Speicherort auf Ihrem Computer in das neu erstellte Verzeichnis my_env / bin /.2) Das System Python ist in
/usr/bin
, während die verschiedenen Python-Versionen, die ich installiert habe, standardmäßig installiert wurden in:3) Die verschiedenen Pythons, die ich installiert habe, haben Namen wie
python2.7
oderpython3.2
, und ich kann diese Namen anstelle vollständiger Pfade verwenden.======== VIRTUALENVWRAPPER =========
1) Ich hatte einige Probleme damit, virtualenvwrapper zum Laufen zu bringen. Das habe ich letztendlich eingefügt
~/.bash_profile
:2) Das
-p option
funktioniert anders mit virtualenvwrapper: Ich muss den vollständigen Pfad zum Python-Interpreter angeben, der in der neuen Umgebung verwendet werden soll (wenn ich die Standard-Python-Version nicht verwenden möchte):Im Gegensatz zu virtualenv erstellt virtualenvwrapper die Umgebung an dem durch die Umgebungsvariable $ WORKON_HOME angegebenen Speicherort. So bleiben alle Ihre Umgebungen an einem Ort.
quelle
which pip
sagt mir nicht die Version von Python. Es gibt mir das-/usr/local/bin/pip
./usr/local/bin
und tun$ ls -al pip
, sollten Sie etwas sehen wie:pip -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip
mkproject
der zu verwendende Befehl, wenn Sie möchten, dass sowohl das Projektverzeichnis als auch eine virtuelle Umgebung einer bestimmten Python-Version erstellt werden.mkproject -p /usr/bin/python3.6 myNewPython36Project
Diese beiden Befehle sollten gut funktionieren.
virtualenv -p python2 myenv
(Für Python2)virtualenv -p python3 myenv
(Für Python3)quelle
Angenommen, Sie haben derzeit Python 2.7 in Ihrer virtuellen Umgebung installiert. Aber nutzen wollen
python3.2
, müssten Sie dies aktualisieren mit:Aktivieren Sie dann Ihre virtuelle Umgebung durch:
und dann:
python --version
in der Shell, um zu überprüfen, ob Ihre Version jetzt aktualisiert ist.quelle
-p
.Sie können
virtualenv
mit der gewünschten Python-Version aufrufen . Zum Beispiel:Oder zeigen Sie alternativ direkt auf Ihren virtuellen Pfad. zB für Windows:
Und durch Laufen:
Sie können die in der virtuellen Umgebung installierte Python-Version sehen
quelle
pip3 install virtualenv
zuerstDer
-p
Ansatz funktioniert gut, aber Sie müssen daran denken, ihn jedes Mal zu verwenden. Wenn Sie generell auf eine neuere Version von Python umsteigen möchten, ist dies ein Problem und kann auch zu Fehlern führen.Sie können auch eine Umgebungsvariable festlegen, die dasselbe tut wie
-p
. Stellen Sie dies über Ihre~/.bashrc
Datei oder überall dort ein, wo Sie Umgebungsvariablen für Ihre Anmeldesitzungen verwalten:Dann
virtualenv
wird dies jedes Mal verwendet, wenn Sie es nicht-p
in der Befehlszeile angeben .quelle
export VIRTUALENVWRAPPER_PYTHON=/path/to/desired/version
gemäß den virtualenvwrapper-Dokumenten nicht funktioniert hat, aber diese Lösung funktioniert hat?virtualenvwrapper
beim Ausführen verwendet, was nichts mit Installationen zu tun hat.Noch einfacher, indem Sie die Befehlssubstitution verwenden, um python2 für Sie zu finden:
virtualenv -p $(which python2) <path/to/new/virtualenv/>
Oder wenn Sie virtualenvwrapper verwenden:
mkvirtualenv -p $(which python2) <env_name>
quelle
Installieren Sie für Mac (High Sierra) die virtuelle Umgebung auf Python3 und erstellen Sie eine virtuelle Umgebung für Python2:
quelle
python3 -m pip install virtualenv
Auf dem Mac verwende ich pyenv und virtualenvwrapper. Ich musste eine neue virtuelle Umgebung erstellen. Sie benötigen Homebrew, das Sie vermutlich installiert haben, wenn Sie auf einem Mac arbeiten, aber nur zum Spaß:
Ich habe auch zuerst meine Anforderungen eingefroren, damit ich die neue virtuelle Umgebung einfach neu installieren kann mit:
quelle
mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name}
Versionen sein, nicht Version. Wenn SO kurze Änderungen zuließ, hätte ich das behoben.pyenv
Enthält Virtualenv-Unterstützung über daspyenv-virtualenv
Plugin, sodass ich Virtualenvwrapper nicht wirklich benötige. Weitere Details in meiner pyenv Antwort .[November 2019] Ich musste eine Python 3.7-Umgebung (env) auf meinem Python 3.8-basierten Arch Linux-System installieren. Python 3.7 war nicht mehr auf dem System, daher konnte ich Python nicht herunterstufen, um ein Paket zu installieren, das ich brauchte.
Außerdem wollte ich dieses Paket / Python 3.7 in einer virtuellen Umgebung (venv) verwenden. So habe ich es gemacht.
Quelldateien der Python-Version herunterladen:
Ich habe die Python 3.7.4-Quelldateien von heruntergeladen
zu
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz
Ich habe dann dieses Archiv (Quelldateien) extrahiert
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
Installation:
[Hinweis: In meinem System env kein venv.]
Untersuchen Sie die installierten Python-Versionen:
So erstellen Sie ein Venv für eine bestimmte Python-Version:
Erstellen Sie Python 3.7 venv [auf einem Python 3.8-Betriebssystem]:
Hinzugefügt zu
~/.bashrc
:Testen Sie Python 3.7 venv:
quelle
Im Windows-Subsystem für Linux:
Erstellen Sie eine Umgebung für Python3:
Aktiviere es:
quelle
Unter Windows:
oder
Dies verwendet den
py
Launcher, der die richtige ausführbare Python-Datei für Sie findet (vorausgesetzt, Sie haben sie installiert).quelle
Ja , die obigen Antworten sind korrekt und funktionieren auf Unix-basierten Systemen wie Linux und MAC OS X. .
Ich habe versucht, virtualenv für Python2 und Python3 mit den folgenden Befehlen zu erstellen .
Hier habe ich verwendet venv2 & venv3 als ihre Namen für Python2 & Python3 sind.
quelle
Es hat bei mir funktioniert
quelle
Ich verwende pyenv , um meine Python-Version zu verwalten.
Überprüfen Sie Ihre Python-Version:
Erstellen Sie die virtuelle Umgebung mit venv :
Aktivieren Sie dann die virtuelle Umgebung:
Überprüfen Sie Ihre Python-Version:
Möglicherweise müssen Sie die vorherige virtuelle Umgebung entfernen
quelle
Diese scheinen für Windows etwas überkompliziert zu sein. Wenn Sie unter Windows mit Python 3.3 oder höher arbeiten, können Sie den Python Launcher verwenden
py
, um dies viel einfacher zu tun. Installieren Sie einfach die andere Python-Version und führen Sie dann Folgendes aus:Dadurch wird
env
mithilfe von Python eine virtuelle Umgebung erstellt, die in Ihrem aktuellen Verzeichnis aufgerufen wird[my version]
. Als Beispiel:Dadurch wird eine virtuelle Umgebung namens
env
python3.7 erstellt und aktiviert. Keine Pfade oder andere komplexe Dinge erforderlich.quelle
py -3.7 -m venv env
stattdessen sein (das-m
fehlt)?Link zum Erstellen von virtualenv
quelle
Für Debian (debian 9) -Systeme im Jahr 2019 habe ich eine einfache Lösung gefunden, die das Problem in der virtuellen Umgebung lösen kann.
Angenommen, die virtuelle Umgebung wurde erstellt über:
hat aber nur versionen von
python2
undpython2.7
, und Sie benötigen die neuesten Funktionen von Python3.7.Führen Sie dann einfach den Befehl aus:
fügt python3.7-Pakete hinzu, wenn diese bereits auf Ihrem System verfügbar sind.
quelle
Dies war ein Fehler bei virtualenv. Nur ein Upgrade Ihres Pip sollte das Problem sein.
pip install --upgrade virtualenv
quelle
Wie bereits in mehreren Antworten erwähnt, ist die Verwendung von virtualenv eine saubere Lösung. Eine kleine Gefahr, die jeder beachten sollte, ist jedoch, dass ein Alias für Python in bash_aliases wie folgt festgelegt ist :
Dieser Alias wird auch in der virtuellen Umgebung verwendet. In diesem Szenario wird die Ausführung
python -V
in der virtuellen3.6
Umgebung immer ausgegeben, unabhängig davon, welcher Interpreter zum Erstellen der Umgebung verwendet wird:quelle
Es funktionierte für mich unter Windows mit Python 2-Installation:
Auf diese Weise habe ich eine virtuelle Python 3-Umgebung in meiner vorhandenen Python 2-Installation erstellt.
quelle
Sie können dies folgendermaßen tun:
quelle
Ja, Sie müssen nur die andere Version von Python installieren und den Speicherort Ihrer anderen Version von Python in Ihrem Befehl wie folgt definieren:
quelle
Hier ist der Schritt zum Erstellen der virtuellen Umgebung im Visual Studio Code-Ordner: Ich habe Powershell (Administratormodus) verwendet:
1. Ich erstelle einen VSCode-Ordner - "D: \ Code_Python_VE", in dem ich eine virtuelle Umgebung erstellen möchte.
2. Als nächstes gebe ich den Befehl "pip3 install virtualenv" ein. (D: \ Code_Python_VE> pip3 install virtualenv) 3. D: \ Code_Python_VE> python3 -m venv project_env
4. D: \ Code_Python_VE> project_env \ Scripts \ activate.bat
5. D: \ Code_Python_VE> ls - Dies listet eine neue Liste auf Verzeichnis "project_env".
6. D: \ Code_Python_VE> Code. Dadurch wird Visual Studio Code gestartet. Stellen Sie sicher, dass der Befehl (Code) lautet.
7. Erstellen Sie launch.jason mit folgendem Inhalt:
(Bitte suchen Sie, wie Sie zum Debug-Fenster gehen und neue Konfiguration in VS-Code hinzufügen).
(project_env) d: \ Code_Python_VE> python -m pip install --upgrade
Ich hoffe, das hilft.
quelle
UBUNTU 19.04 / Global Python 3.7.
Dies funktionierte für mich und ermöglichte eine Python 3.8-Umgebung mit dem empfohlenen venv für die Python 3-Entwicklung.
Installieren Sie das venv-Modul 3.8 und 3.8
$ sudo apt install python3.8 python3.8-venv ## plus alle anderen Module, die Sie benötigen
Erstellen Sie Ihre virtuelle Umgebung mit der Python-Version, die Sie in dieser Umgebung haben möchten
$ /usr/bin/python3.8 -m venv python38-env
Wechseln Sie in Ihre virtuelle Umgebung
$ source python38-env / bin / enabled
Python -V = Python 3.8
quelle