Mit virtualenv führe ich meine Projekte mit der Standardversion von Python (2.7) aus. In einem Projekt muss ich Python 3.4 verwenden.
Ich habe brew install python3
es auf meinem Mac installiert. Wie erstelle ich nun eine virtuelle Umgebung, die die neue Version verwendet?
zB sudo virtualenv envPython3
Wenn ich es versuche:
virtualenv -p python3 test
Ich bekomme:
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4'
New python executable in test/bin/python3.4
Also creating executable in test/bin/python
Failed to import the site module
Traceback (most recent call last):
File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in <module>
import os
File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/os.py", line 634, in <module>
from _collections_abc import MutableMapping
ImportError: No module named '_collections_abc'
ERROR: The executable test/bin/python3.4 is not functioning
ERROR: It thinks sys.prefix is '/Users/user/Documents/workspace/test' (should be '/Users/user/Documents/workspace/test/test')
ERROR: virtualenv is not compatible with this system or executable
python
python-3.x
virtualenv
Prometheus
quelle
quelle
Antworten:
einfach laufen
Update nach der Bearbeitung des OP:
Es gab einen Fehler in der OP-Version von virtualenv, wie hier beschrieben . Das Problem wurde behoben, indem Folgendes ausgeführt wurde:
quelle
virtualenv -p $(which python3) envname
virtualenv -p python3 my_virtual_env
,python3
auch die virtuelle Umgebung von außen zugänglich ist?bin
,lib
,include
,local
undshare
Verzeichnisse in Ihrem Stammverzeichnis des Projekts. 2. In Terminal Run:virtualenv -p python3 .
Initialisiert eine neue virtuelle Python3-Umgebung im aktuellen Verzeichnis.Python 3 bietet eine integrierte Unterstützung für virtuelle Umgebungen - venv . Es könnte besser sein, das stattdessen zu verwenden. Verweis auf die Dokumente:
Update für Python 3.6 und neuer:
Wie pawciobiel richtig kommentiert ,
pyvenv
ist ab Python 3.6 veraltet und der neue Weg ist:quelle
python3 -m venv /path/v3
da pyvenv script ab Python 3.6 veraltet ist.python3 -m venv /path/v3
Fehler hier.Error: Command '['/path/v3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit
Vermisse ich etwas Mit dieser--without-pip
Option wird zumindest das Venv mit den Skripten zum Aktivieren / Deaktivieren korrekt erstellt.Ich habe pyenv ausprobiert und es ist sehr praktisch, um Python-Versionen zu wechseln (global, lokal im Ordner oder in der virtuellen Umgebung):
Installieren Sie dann die gewünschte Python-Version:
und erstellen Sie einfach virtualenv mit dem Pfad zur benötigten Interpreter-Version:
Das war's, überprüfen Sie die Version:
Es gibt auch Plugins für pyenv pyenv-virtualenv, aber es hat irgendwie nicht für mich funktioniert.
quelle
Installieren Sie die Voraussetzungen.
Erstellen Sie eine Python3-basierte virtuelle Umgebung. Optional
--system-site-packages
Flag aktivieren .In die virtuelle Umgebung einstellen.
Installieren Sie andere Anforderungen mit dem
pip
Paketmanager.Wenn Sie an mehreren Python-Projekten gleichzeitig arbeiten, wird normalerweise empfohlen, allgemeine Pakete wie
pdbpp
global zu installieren und sie dann in virtuellen Umgebungen wiederzuverwenden.Die Verwendung dieser Technik spart viel Zeit beim Abrufen und Installieren von Paketen, abgesehen vom minimalen Speicherplatz und der minimalen Netzwerkbandbreite.
Django spezifische Anweisungen
Wenn es viele systemweite Python-Pakete gibt, wird empfohlen, das
--system-site-packages
Flag nicht zu verwenden, insbesondere während der Entwicklung, da ich festgestellt habe, dass es den Django-Start erheblich verlangsamt. Ich gehe davon aus, dass die Initialisierung der Django-Umgebung das manuelle Scannen und Anhängen aller Site-Pakete aus dem Systempfad ist, was der Grund sein könnte. Auchpython manage.py shell
wird sehr langsam.Nach diesem Experiment funktioniert welche Option besser. Es könnte sicher sein, die
--system-site-packages
Flagge für Django-Projekte einfach zu überspringen .quelle
apt-get
aberbrew
)arbeitete für mich.
quelle
The executable python3 (from --python=python3) does not exist
, was würden Sie tun? Ich wollte isntall python3 brauen, war mir aber nicht sicher, ob das eine gute Idee war oder ob mein System verwirrt sein würde, welche Python-Version ich verwendeSie können beim Erstellen der Umgebung eine bestimmte Version von Python angeben .
Es wird in virtualenv.py erwähnt
In einigen Fällen muss dies der vollständige Pfad zur ausführbaren Datei sein:
Wie
-p
funktioniertquelle
Ich hatte die gleiche
ERROR
Nachricht. Die Lösung von tbrisker hat in meinem Fall nicht funktioniert. Stattdessen löste dies das Problem:quelle
Dies ist alles, was Sie benötigen, um eine virtuelle Umgebung in Python / Python3 auszuführen
Wenn
virtualenv
nicht installiert, führen Sie zuerst ausJetzt ausführen:
Manchmal
virtualenv
schlägt der cmd fehl, wenn ja, verwenden Sie Folgendes :Aktivieren Sie nun die virtuelle Umgebung:
Oder:
Jetzt renn
Sie sollten den vollständigen Pfad zu Ihrem Verzeichnis und
<env_name>/bin/python
Suffix sehenFühren Sie Folgendes aus, um die virtuelle Umgebung zu beenden:
quelle
Python verfügt nun über eine eigene Implementierung einer virtuellen Umgebung mit dem Namen "venv". Ich würde vorschlagen, dies anstelle von virtualenv zu verwenden.
Zitat aus venv - docs ,
Öffnen Sie für Windows cmd, um venv für ein Projekt zu starten:
(Ich würde vorschlagen, ein doppeltes Anführungszeichen um den Verzeichnispfad zu verwenden, wenn er Leerzeichen enthält. Beispiel: "C: / My Dox / Spaced Directory / Something")
Sobald venv eingerichtet ist, werden einige neue Ordner in Ihrem Projektverzeichnis angezeigt. Eines davon wäre "Scripts".
Um venv zu aktivieren oder aufzurufen, benötigen Sie:
Sie können eine virtuelle Umgebung deaktivieren, indem Sie in Ihrer Shell "Deaktivieren" eingeben. Damit können Sie jetzt Ihre projektspezifischen Bibliotheken installieren, die sich unter dem Ordner "Lib" befinden.
=============================== Bearbeiten 1 ================ ==================== Das unten beschriebene Szenario ist nicht das, was ursprünglich gefragt wurde. Fügen Sie dies nur hinzu, falls jemand vscode mit Python-Erweiterung verwendet
Wenn Sie vs-Code mit seiner Python-Erweiterung verwenden, tritt möglicherweise ein Problem mit seinem Pylint auf, das auf die globale Installation verweist. In diesem Fall kann pylint die in Ihrer virtuellen Umgebung installierten Module nicht sehen und zeigt daher beim Import Fehler an.
Hier ist eine einfache Methode, um darüber hinwegzukommen.
Grundsätzlich aktivieren wir zuerst die Umgebung und rufen dann vs-code auf, damit pylint in der Umgebung startet und alle lokalen Pakete sehen kann.
quelle
virtualenv
für die tägliche Verwendung von virtuellen Umgebungen (workon
usw.), aber für die zuverlässige Erstellung neuer virtueller Umgebungen istpython3.x
dies die einzige Möglichkeit, die ich gefunden habe, die funktioniert.Zusätzlich zu den anderen Antworten empfehle ich zu überprüfen, welche Instanz von virtualenv Sie ausführen:
Wenn dies in / usr / local / bin auftaucht, ist es möglich - sogar wahrscheinlich -, dass Sie virtualenv installiert haben (möglicherweise mit einer Instanz von easy_tools oder pip), ohne den Paketmanager Ihres Systems zu verwenden (im Fall von OP brauen). Das war mein Problem.
Vor Jahren - als ich noch ignoranter war - hatte ich virtualenv installiert und es maskierte das vom Paket bereitgestellte virtualenv meines Systems.
Nachdem ich diese alte, kaputte virtuelle Umgebung entfernt hatte, verschwanden meine Probleme.
quelle
In Python3.6 habe ich es
python3 -m venv myenv
gemäß der Dokumentation versucht , aber es hat so lange gedauert . Der sehr einfache und schnelle Befehl lautet also:python -m venv yourenv
Es hat bei Python3.6 für mich funktioniert.quelle
Auf dem Mac musste ich Folgendes tun, damit es funktioniert.
quelle
which python2.7
oderwhich python3.5
oderwhich python3.6
, und ersetzen Sie dann das about--python=DIRECTORY
Wenn Sie python3 (
brew install python3
) zusammen mit virtualenv burrito installieren , können Sie dies tunmkvirtualenv -p $(which python3) env_name
Natürlich weiß ich, dass virtueller Burrito nur ein Wrapper ist, aber er hat mir über die Jahre gute Dienste geleistet und einige Lernkurven reduziert.
quelle
virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME>
Dadurch wird der Python3- Pfad für Ihre virtuelle Umgebung hinzugefügt .quelle
Es hat bei mir funktioniert
quelle
Für diejenigen, die Probleme bei der Arbeit mit Anaconda3 (Python 3) haben.
Du könntest benutzen
So aktivieren Sie die Umgebung (Linux, MacOS)
Für Windows
quelle
Ich habe alle oben genannten Dinge ausprobiert, es hat immer noch nicht funktioniert. Als Brute Force habe ich einfach die Anaconda neu installiert, die virtuelle Umgebung neu installiert ... und es hat funktioniert.
quelle
Ich wollte Python 2.7.5 als Standardversion unter Centos 7 beibehalten, habe aber Python 3.6.1 in einer virtuellen Umgebung, die neben anderen virtuellen Umgebungen in Python 2.x ausgeführt wird
Ich fand den folgenden Link die beste Lösung für die neueste Python-Version (Python 3.6.1) https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming -Umgebung-für-Python-3 . Es zeigt die Schritte für verschiedene Plattformen, aber die grundlegenden Schritte sind
quelle
Mit den folgenden einfachen Befehlen können Sie eine virtuelle Umgebung mit Version 3.5 erstellen
Wenn Sie eine virtuelle Env-Version als 3.6 möchten
quelle
Für diejenigen unter Ihnen, die pipenv verwenden und eine bestimmte Version installieren möchten:
quelle
Ich habe den gleichen Fehler erhalten, weil es sich um einen Konflikt mit der Installation von miniconda3 handelt. Wenn Sie also "which virtualenv" eingeben und miniconda installiert haben und es auf diese Installation verweist, können Sie es entweder entfernen (wenn Sie mich mögen und nicht umgezogen sind noch dazu) oder ändern Sie Ihre Umgebungsvariable so, dass sie auf die gewünschte Installation verweist.
quelle
In der Windows-Befehlszeile hat Folgendes für mich funktioniert. Finden Sie zuerst heraus, wo sich Ihre ausführbaren Python-Dateien befinden:
Dadurch werden die Pfade zu den verschiedenen python.exe auf Ihrem System ausgegeben. Hier waren meine:
Für Python3 befand sich dies im ersten Pfad für mich, sodass ich in den Stammordner der Anwendung cdte, in dem ich einen Ordner für eine virtuelle Umgebung erstellen möchte. Dann führe ich Folgendes aus, das den Pfad zu meiner ausführbaren Python3-Datei enthält und meine virtuelle Umgebung "venv" nennt:
Aktivieren Sie als Nächstes die virtuelle Umgebung:
Installieren Sie abschließend die Abhängigkeiten für diese virtuelle Umgebung:
Diese Anforderung.txt kann manuell ausgefüllt werden, wenn Sie die für Ihre Anwendung in der virtuellen Umgebung erforderlichen Bibliotheken / Module kennen. Wenn die Anwendung in einer anderen Umgebung ausgeführt wurde, können Sie die Abhängigkeiten automatisch erstellen, indem Sie Folgendes ausführen (CD in den Anwendungsordner in der Umgebung, in der sie ausgeführt wird):
Sobald Sie die Anforderung.txt haben, die Sie eingefroren haben, können Sie die Anforderungen auf einem anderen Computer oder in einer sauberen Umgebung wie folgt installieren (nach CD in den Anwendungsordner):
Führen Sie Folgendes aus, um Ihre Python-Version in der virtuellen Umgebung anzuzeigen:
Dann voila ... Sie haben Python3 in Ihrer virtuellen Umgebung ausgeführt. Ausgabe für mich:
quelle