2013-09-06 17 views
25

Sie haben versucht, psycopg2 entweder mit easy_install oder pip zu installieren, und das Terminal bleibt in einer Schleife zwischen xcrun und lipo stecken.xcrun/lipo friert mit OS X Mavericks und XCode 4.x ein

sidwyn$ sudo easy_install psycopg2 
Searching for psycopg2 
Reading https://pypi.python.org/simple/psycopg2/ 
Reading http://initd.org/psycopg/ 
Reading http://initd.org/projects/psycopg2 
Best match: psycopg2 2.5.1 
Downloading https://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.5.1.tar.gz#md5=1b433f83d50d1bc61e09026e906d84c7 
Processing psycopg2-2.5.1.tar.gz 
Writing /tmp/easy_install-dTk7cd/psycopg2-2.5.1/setup.cfg 
Running psycopg2-2.5.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dTk7cd/psycopg2-2.5.1/egg-dist-tmp-4jaXas 
clang: warning: argument unused during compilation: '-mno-fused-madd' 

Es springt zwischen Xcrun und Lipo und ist für immer in dieser Schleife stecken. Würde mich über einige Einblicke freuen.

Ich bin auf OS X Mavericks 10.9, neueste Build.

Antwort

50

Eine geeignete Lösung ist:

ln /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo 
xcrun -k lipo 

Warum: XFX Fix wird wahrscheinlich in der Lage, bricht Xcode-select zu benutzen, um Ihre Werkzeugkette in zukünftigen Versionen von Xcode zu wählen.

Pre- Mavericks und Xcode 5.x/usr/bin/Lipo scheint die tatsächliche Lage des tatsächlichen Lipo-Tool zu sein (cat /usr/bin/lipo versuchen - sieht aus wie eine große binär). In Mavericks/Xcode 5.x wurde Lipo zu XcodeDefault.xctoolchain verschoben, und die Binärdatei bei /usr/bin/lipo ist ein dünner Wrapper, der anscheinend xcrun lipo (siehe) aufruft, der seinerseits die Position von lipo basierend auf xcode-select findet.

Wahrscheinlich, neue Versionen von xcode-select und/oder Mavericks ersetzen/usr/bin/lipo mit der Wrapper-Version. Wenn Sie dann versuchen, Lipo mit der 4.x Toolchain xcode-select 'd zu verwenden, wird es nicht funktionieren, da das Tool nicht in älteren Versionen von Xcode enthalten ist. Glücklicherweise ist es aus irgendeinem Grund immer noch in iPhoneOS.platform enthalten, sonst müssten Sie es wahrscheinlich von einem unverfälschten < = 10.8 Computer ziehen.

Es sieht so aus, als ob zwischen den Entwicklern/usr/bin und Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin im 4-> 5-Switch viele Tools gemischt wurden - das würde mich nicht wundern waren ähnliche Probleme mit anderen, weniger häufig verwendeten Befehlszeilenwerkzeugen.

Schließlich, die Tatsache, dass xcrun hängt, wenn es ein Werkzeug nicht finden kann, scheint wie ein Apfelwanze, schlicht und einfach.

+1

Dieses q sollte mit Mavericks/xcode/lipo/xcrun und wahrscheinlich nicht python/etc getaggt werden, da es ein Build-Toolchain-Problem und kein Python-Problem ist. – scztt

+0

Eine andere Anmerkung - wenn Lipo nach dem obigen hängt, löscht 'xcrun -k lipo' die zwischengespeicherte (falsche) Position. Und, ehrfürchtig, wenn Sie dies tun, während Ihr Build hängt, wird es sofort aushängen. – scztt

+6

du bist mein Held. –

3

Ich habe das gleiche Problem, behoben durch Ersetzen der/Usr/bin/Lipo mit einem alten von Max OS 10.7.

Update: ersetzen/usr/bin/lipo mit /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin wird funktionieren. Sie benötigen Xcode-Anwendung oder IMG-Datei.

+0

Frage mich, welche Art von Auswirkungen das haben könnte? – Bartek

12

Dies funktioniert für mich:

xcode-select -–install 
sudo mv /usr/bin/lipo /usr/bin/lipo.orig 
sudo ln -s /Library/Developer/CommandLineTools/usr/bin/lipo /usr/bin 
+1

Das sollte '--install' sein, oder? – simbabque

+0

Ja, danke, du hast Recht. – avdyushin

0

ich /usr/bin/lipo von meinem TimeMachine Backup (Zeitstempel vor der OSX 10.9 Aktualisierung) gestellt. Dann XCode 4.x funktionierte gut, Archivierung nicht mehr hängen.

3

Die einfachste Lösung ist wahrscheinlich ein Upgrade auf XCode 5.x.

+0

tatsächlich. Ich musste das nur mit einem Kunden machen. Sie hatten die neuesten und besten Command Line Tools installiert, aber eine ältere Version von XCode 4.1.x. Nachdem wir XCode aktualisiert hatten, hatten wir dieses Problem nicht mehr. sehr, sehr komisch. – defbyte

+0

Ich betreibe Mavericks und hatte dieses Problem. Upgrade auf XCode 6 hat es behoben. – tronbabylove