2012-04-18 3 views
9

Ich habe den folgenden Fehler nach einer Neuinstallation von Python über brew installieren Python. Der Link gehört zu einer früheren Python-Installation, die ich manuell gelöscht habe.Python fragt ältere Pfade auf dem Mac nach dem Löschen von doppelten Python-Installation

$ virtualenv ENV 
python: posix_spawn: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No such file or directory 

Ich bin mit MacOS 10.7.3 und ich installiert virtualenv über pip:

$ sudo /usr/local/share/python/pip install virtualenv 
Downloading/unpacking virtualenv 
Downloading virtualenv-1.7.1.2.tar.gz (2.1Mb): 2.1Mb downloaded 
Running setup.py egg_info for package virtualenv 

warning: no previously-included files matching '*.*' found under directory 'docs/_templates' 
Installing collected packages: virtualenv 
Running setup.py install for virtualenv 

warning: no previously-included files matching '*.*' found under directory 'docs/_templates' 
Installing virtualenv script to /usr/local/share/python 
Successfully installed virtualenv 
Cleaning up... 
$ virtualenv ENV 
python: posix_spawn: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No such file or directory 

Wie kann ich dieses Problem beheben?

Edit: Ich habe MacOSx neu installiert und kehrte jetzt zu meinem vorherigen Status zurück, der mich das vorinstallierte Python löschen ließ.

$ which python 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python 
$ which pip /usr/local/bin/pip $ sudo pip install virtualenv 
Downloading/unpacking virtualenv 
Downloading virtualenv-1.7.1.2.tar.gz (2.1Mb): 2.1Mb downloaded 
Running setup.py egg_info for package virtualenv 

warning: no previously-included files matching '*.*' found under directory 'docs/_templates' 
Installing collected packages: virtualenv 
Running setup.py install for virtualenv 

warning: no previously-included files matching '*.*' found under directory 'docs/_templates' 
Installing virtualenv script to /usr/local/bin 
Successfully installed virtualenv 
Cleaning up... 


$ python virtualenv.py ENV 
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/‌​MacOS/Python: can't open file 'virtualenv.py': [Errno 2] No such file or directory 

Das virtualenv.py bei /Library/Python/2.7/site-packages/virtualenv.py und /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/ gelegen py2app/rezepte/virtualenv.py aber irgendwie python vermisst alles.

Warum gibt es so viel Chaos? Wie soll ich fortfahren, um das zu beheben?

+0

Sie können davon profitieren, die erste Antwort zu lesen [hier verlinkt] (http: // stackoverflow.com/questions/1218891/multiple-versions-von-python-on-os-x-leopard) und dann den Link lesen, den diese Antwort bietet. Es ist normalerweise eine schreckliche Idee, die von Apple installierten Versionen der Dinge zu entfernen (das ist ein Grund, warum ich mich weigere, auf einem Mac zu entwickeln). – ely

+0

Ich habe bereits gebraut. Die Diskussion findet hauptsächlich auf MacPorts in diesem Link statt. – cgl

Antwort

15

hatte ich die gleiche Situation nach dumme Sache zu löschen ganze /System/Library/Frameworks/Python.framework/ Was ergibt Fehler gemacht:

python: posix_spawn: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No such file or directory

ich es geschafft, wieder herzustellen es, weil ich eine frühere Kopie meiner ganzen Platte hatte, und einfach durch Kopieren-das gesamte Python.framework-Verzeichnis wieder einfügen.

Ich weiß nicht, wie viel es systemabhängig ist, aber wenn jemand möchte tun, um zu versuchen, dass die gleiche Art und Weise statt ganze OS X erneut zu installieren, die ganze Python.framework von mir gezippt hier: http://andilabs.com/Python.framework.zip

+1

Danke für den Upload @andi, aber es ist nicht mehr online. Kannst du das Python.framework.zip bitte nochmal hochladen? –

+0

@ StéphaneBruckert Link sollte jetzt funktionieren. Genießen! – andi

+1

Super, danke! –

7

Es sieht so aus, als hätten Sie das von Apple gelieferte Python 2.7 gelöscht, das Teil von OS X 10.7 ist. Das ist eine schlechte Sache zu tun. Möglicherweise haben Sie versehentlich Teile von OS X beschädigt, die davon abhängen. Löschen Sie niemals etwas in /usr (außer /usr/local) oder in /System/Library. Wenn Sie eine neuere Version von etwas installieren, verwalten Sie das über $ PATH, nicht durch Löschen. Das Beste, was Sie langfristig tun können, ist, das, was Sie gelöscht haben, neu zu installieren. Der sicherste Weg, dies zu tun, ist OS X neu zu installieren. Eine temporäre Workaround könnte/usr/bin/python aus dem Weg zu bewegen und ersetzen Sie es mit einem Link zu /usr/local/bin/python2.7, aber Sie sollten wirklich den Schaden an Ihrem System rückgängig machen.

UPDATE: Jetzt, nachdem Sie das System Python (gut!) Wiederhergestellt haben, können wir Ihr ursprüngliches Problem bekommen. Ohne weitere Informationen kann ich nur spekulieren, aber die Wahrscheinlichkeit ist groß, dass Sie virtualenv in die falsche Python-Instanz installieren. Beachten Sie, dass Sie eine Kopie von Distribute (oder seinem Vorgänger setuptools), die den easy_install-Befehl bereitstellt, und eine separate Kopie von pip in jeder Instanz von Python, die Sie verwenden möchten, installieren müssen. Wenn Sie die easy_install verwenden, die Apple mit OS X geliefert wird, werden Sie auf dem Apple-System Python installieren. Sie erwähnen brew in einem Kommentar. Wenn ja, sollten Sie the instructions and recipes for it folgen; Deshalb haben Sie einen Paketmanager. Aber hier ist, wie man alles von Grund auf neu installieren würde:

$ which python 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python 
$ curl -O http://python-distribute.org/distribute_setup.py 
$ python distribute_setup.py 
[...] 
creating /Library/Frameworks/Python.framework/Versions/2.7.3_release_10.6/lib/python2.7/site-packages/distribute-0.6.26-py2.7.egg 
Extracting distribute-0.6.26-py2.7.egg to /Library/Frameworks/Python.framework/Versions/2.7.3_release_10.6/lib/python2.7/site-packages 
Adding distribute 0.6.26 to easy-install.pth file 
Installing easy_install script to /Library/Frameworks/Python.framework/Versions/2.7/bin 
Installing easy_install-2.7 script to /Library/Frameworks/Python.framework/Versions/2.7/bin 

Installed /Library/Frameworks/Python.framework/Versions/2.7.3_release_10.6/lib/python2.7/site-packages/distribute-0.6.26-py2.7.egg 
Processing dependencies for distribute==0.6.26 
Finished processing dependencies for distribute==0.6.26 
After install bootstrap. 
Creating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info 
Creating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools.pth 
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py 
$ python get-pip.py 
$ which pip 
/Library/Frameworks/Python.framework/Versions/2.7/bin/pip 
$ pip install virtualenv 
[...] 
    Installing virtualenv script to /Library/Frameworks/Python.framework/Versions/2.7/bin 
Successfully installed virtualenv 
Cleaning up... 
$ which virtualenv 
/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv 
$ virtualenv ENV 
New python executable in ENV/bin/python 
Installing setuptools............done. 
Installing pip...............done. 
$ source ENV/bin/activate 
(ENV)$ which python 
/Users/nad/ENV/bin/python 
(ENV)$ 
+0

Das Problem ist das gleiche, warum ich das vorinstallierte Python an erster Stelle gelöscht habe. Ich habe eine Neuinstallation vorgenommen. $, welche Python /Library/Frameworks/Python.framework/Versions/2.7/bin/python $, die /usr/local/bin/pip $ sudo Pip installieren virtualenv Herunterladen/Entpacken virtualenv .... $ python virtualenv.py ENV /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: Datei kann nicht geöffnet 'virtualenv.py': [Errno 2] Datei oder Verzeichnis – cgl

+0

Bitte überprüfen Sie meine Bearbeitung über – cgl