Ich habe virtualenv
über pip
installiert und bekomme diese Fehlermeldung, nachdem ich eine neue Umgebung erstellt habe:
Selenium:~ auser$ virtualenv new
New python executable in new/bin/python
ERROR: The executable new/bin/python is not functioning
ERROR: It thinks sys.prefix is u'/System/Library/Frameworks/Python.framework/ Versions/2.6' (should be '/Users/user/new')
ERROR: virtualenv is not compatible with this system or executable
In meiner Umgebung:
PYTHONPATH=/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
PATH=/System/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Wie kann ich das reparieren?
Vielen Dank.
Wenn Sie weiterhin Probleme mit virtualenv
haben, können Sie stattdessen pythonbrew versuchen. Es ist eine alternative Lösung für dasselbe Problem. Es funktioniert mehr wie Rubys rvm : Es erstellt und erstellt eine vollständige Instanz von Python unter $HOME/.pythonbrew
und richtet dann einige Bash-Funktionen ein, mit denen Sie problemlos zwischen den Versionen wechseln können. Wenn virtualenv
die Systemversion von Python unter Verwendung von symbolischen Links als Teil seiner Lösung im Schatten stellt, erstellt pythonbrew
vollständig in sich geschlossene Installationen von Python.
Ich habe jahrelang virtualenv
verwendet. Es ist eine anständige Lösung, aber ich habe in letzter Zeit auf pythonbrew
umgestellt. Das Vorhandensein vollständig unabhängiger Python-Instanzen bedeutet, dass die Installation einer neuen Instanz eine Weile dauert (da pythonbrew
Python tatsächlich von Grund auf neu kompiliert), aber die in sich geschlossene Natur jeder Installation gefällt mir. Und Scheibe ist billig.
Nur für den Fall, dass noch jemand nach der Antwort sucht.
Ich bin gerade heute auf dieses Problem gestoßen und habe gemerkt, dass ich Anaconda bereits installiert habe. Ich hätte pip install virtualenv
nicht zur Installation der virtuellen Umgebung verwenden sollen, da mir dies beim Versuch, es später einzuleiten, die Fehlermeldung angezeigt wird. Stattdessen habe ich versucht, conda install virtualenv
und dann virtualenv env_mysite
einzugeben, und das Problem wurde gelöst.
Falls in der Zukunft jemand auf dieses Problem stößt, liegt dies daran, dass Ihre Standard-Python-Distribution Conda ist. Conda hat seine eigene virtuelle Umgebung set up-Prozess , aber wenn Sie die Conda-Verteilung von Python haben und trotzdem virtualenv verwenden möchten, dann gehen Sie folgendermaßen vor
Finden Sie die andere Python-Distribution auf Ihrem Computer: ls -ls /usr/bin/python*
Beachten Sie die verfügbare Python-Version, die nicht conda ist, und führen Sie den folgenden Code aus (Hinweis für Python 3 und höher müssen Sie zunächst die Aktualisierung von virtualenv durchführen): virtualenv -p python2.7(or your python version) flaskapp
Wie @RyanWilcox erwähnt, weisen Sie möglicherweise virtualenv
unabsichtlich auf die falsche Python-Installation hin. Virtualenv enthält ein -p
-Flag, mit dem Sie angeben können, welcher Interpreter verwendet werden soll.
In meinem Fall,
virtualenv test_env
warf den gleichen Fehler wie du
virtualenv -p python test_env
hat perfekt funktioniert.
Wenn Sie virtualenv -h
aufrufen, wird Ihnen in der Dokumentation für das -p
-Flag angezeigt, welcher Python es zu verwenden glaubt. Wenn es nicht so aussieht, versuchen Sie es mit -p python
. Als Referenz bin ich auf Virtualenv 1.11.6.
Ich bin selbst auf dieses Problem gestoßen. Ich habe die Anweisungen in einem README aufgeschrieben, das ich unten eingefügt habe ....
Ich habe festgestellt, dass zwei Dinge funktionieren, die funktionieren:
Wenn Sie einen Nicht-System-Python als Standard-Python verwenden (den zu überprüfenden Python), verwenden Sie das vom System gelieferte System.
Anstelle von virtualenv thing
verwenden Sie /usr/bin/python2.6 PATH/TO/VIRTUALENV thing
(oder was auch immer which
python
an Sie zurückgegeben wurde. Dies hat es für mich getan, als ich auf dieses Problem stieß).
Ich hatte das gleiche Problem und wie ich es jetzt sehe, wurde es durch eine chaotische Python-Installation verursacht. Ich habe OS X seit über einem Jahr installiert, seit ich einen neuen Laptop gekauft habe. Ich habe Python bereits mehrmals mit verschiedenen Quellen installiert und neu installiert (offizielle Binaries, Homebrew, offizielle Binaries + handgefertigte Anpassungen wie beschrieben hier ). . Fragen Sie mich nicht, warum ich das getan habe. Ich bin nur ein unglücklicher Neuling, der daran glaubt, dass sich nach der Neuinstallation alles repariert.
Ich hatte also hier und da eine Reihe verschiedener Pythons installiert und viele Hardlinks, die uneinheitlich auf sie zeigen. Irgendwann habe ich alle satt und oS X neu installiert Das System wurde sorgfältig von allen Pythons gesäubert, die ich mit dem Dienstprogramm find
gefunden hatte. Außerdem habe ich alle Links aufgehoben, die von überall auf Python verweisen. Dann habe ich einen neuen Python mit Homebrew installiert, virtualenv installiert und alles funktioniert jetzt wie ein Zauber.
Mein Rezept lautet also:
Sudo find / -iname "python*" > python.log
Dann analysieren Sie diese Datei, entfernen und verknüpfen Sie alles, was mit der Python-Version zusammenhängt, die Sie benötigen, installieren Sie sie neu (ich habe es mit Homebrew gemacht, vielleicht funktioniert auch die offizielle Installation) und genießen Sie es. Stellen Sie sicher, dass Sie die Verknüpfung aller Python-bezogenen Elemente von /usr/bin
und /usr/local/bin
aufheben und alle Instanzen von Frameworks/Python.framework/Versions/<Your.Version>
in /Library
und /System/Library
entfernen.
Es mag ein schmutziger Hack sein, aber es hat für mich funktioniert. Ich ziehe es vor, keine systemweiten Python-Bibliotheken außer pip
und virtualenv
beizubehalten und virtuelle Umgebungen für alle meine Projekte zu erstellen, sodass es mir nicht wichtig ist, die wichtigen Bibliotheken zu entfernen. Wenn Sie nicht alles entfernen möchten, versuchen Sie trotzdem zu verstehen, ob Ihre Pythons sind, welche Links darauf verweisen und woher. Überlegen Sie dann, was das Problem verursachen könnte, und beheben Sie es.
Die obigen Lösungen sind für mich fehlgeschlagen, aber es hat funktioniert:
python3 -m venv --without-pip <ENVIRONMENT_NAME>
. <ENVIRONMENT_NAME>/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
deactivate
Es ist hackig, aber ja, das Kernproblem schien einfach zu sein.
Ich bin auf eine Variante dieses "nicht funktionierenden" Fehlers gestoßen. Ich habe versucht, eine Umgebung in einem Ordner zu erstellen, der den Pfad ".../Programming/Developing ..." enthielt, der eigentlich "/ Users/eric" ist/Dokumente/Programmieren: Entwickeln/"
und bekam diesen Fehler:
ImportError: No module named site
ERROR: The executable env/bin/python2.7 is not functioning
ERROR: It thinks sys.prefix is u'/Users/eric/Documents/Programming:Developing/heroku' (should be u'/Users/eric/Documents/Programming:Developing/heroku/env')
ERROR: virtualenv is not compatible with this system or executable
Ich habe das gleiche in einem anderen Ordner ausprobiert und es hat gut funktioniert, keine Fehler und env/bin hat was ich erwarte (aktivieren etc.).
Ich habe das gleiche Problem und habe festgestellt, dass dies der Fall ist, wenn Sie den Namen der ausführbaren Python-Datei nicht richtig angeben. Also für Python 2x zum Beispiel:
virtualenv --system-site-packages -p python mysite
Für Python 3.6 müssen Sie jedoch den Namen der ausführbaren Datei wie Python3.6 angeben
virtualenv --system-site-packages -p python3.6 mysite
Terminal öffnen und /Library/Frameworks/Python.framework/Versions/
eingeben
geben Sie dann ls /Library/Frameworks/Python.framework/Versions/2.7/bin/
ein, wenn Sie Python2 (oder andere) verwenden.
Bearbeiten Sie ~/.bash_profile und fügen Sie die folgende Zeile hinzu:
export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/
cat ~/.bash_profile
In meinem Fall lautet der Inhalt von ~/.bash_profile wie folgt:
export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/
Nun sollte der Befehl virtualenv funktionieren.
Ich habe die folgenden Schritte ausgeführt, um Virtualenv zum Laufen zu bringen:
Aktualisieren Sie virtualenv wie folgt:
==> Sudo pip install --upgrade virtualenv
Python3 virtualenv initialisieren:
==> virtualenv -p python3 venv
Ich hatte auch dieses Problem und versuchte die folgende Methode, die für mich funktionierte:
conda install virtualenv
virtualenv --system-site-packages /anaconda/envs/tensorflow
(hier envs
behält alle vom Benutzer erstellten virtuellen Umgebungen bei)
source /anaconda/envs/tensorflow/bin/activate
Ich hoffe es ist hilfreich.
Ich hatte das gleiche Problem und ich kann bestätigen, dass das Problem mit einer veralteten virtualenv.py
-Datei bestand.
Es war nicht notwendig, ein komplettes install --upgrade durchzuführen.
Es genügt, die virtualenv.py
-Datei durch die neueste Version zu ersetzen.
Am OSX 10.6.8 leopard
, nachdem ich zu Lion "aufgerüstet" hatte und dann wieder herabgestuft wurde (aua - VERMEIDEN!), Durchlief ich vor einigen Monaten die Methode Wolf Paulus , die Python völlig ignorierte. python 2.7
insgesamt gelöscht und durch 3.something
"ersetzt". Mein FTP-Programm funktioniert nicht mehr (Fetch) und wer weiß, was sonst noch auf Python 2.7 angewiesen ist. An diesem Punkt habe ich die neueste Version von 2.7
von python.org heruntergeladen, und das Installationsprogramm brachte mich zum Laufen - bis ich versuchte, virtualenv
zu verwenden.
Was anscheinend für mich funktioniert hat, war das Löschen von Python 2.7 mit diesem Code:
Sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
entfernen Sie alle Links mit diesem Code:
Sudo rm /usr/bin/pydoc
Sudo rm /usr/bin/python
Sudo rm /usr/bin/pythonw
Sudo rm /usr/bin/python-config
Ich hatte versucht, Python mit homebrew
zu installieren, aber anscheinend wird es nicht funktionieren, wenn nicht alle XTools installiert sind, was ich bisher vermieden habe, da die Version von XTools, die mit 10.6
kompatibel ist, uralt ist und 4GB ist , die Sie hier bekommen können.
Also habe ich gerade den neuesten Download von python.org installiert.
Dann musste easy_install, pip, virtualenv neu installiert werden.
Ich frage mich auf jeden Fall, wann es Zeit für einen neuen Laptop sein wird, aber es gibt viel zu sagen, wenn man weniger Hardware-Teile (Sklavenarbeit, unethischer Bergbau usw.) kauft.