2013-09-06 9 views
25

Próbowałem zainstalować psycopg2 z easy_install lub pip, a terminal utknął w pętli pomiędzy xcrun i lipo.xcrun/lipo zawiesza się z OS X Mavericks i XCode 4.x

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' 

To odbija się od xcrun i lipo i utknie na zawsze w tej pętli. Byłbym wdzięczny za pewne spostrzeżenia na ten temat.

Jestem na OS X Mavericks 10.9, najnowsza kompilacja.

Odpowiedz

50

Bardziej odpowiednia poprawka jest:

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 

Dlaczego: fix XFX będzie prawdopodobnie złamać mogąc użyć Xcode-select, aby wybrać toolchain w przyszłych wersjach Xcode.

przed- Mavericks i Xcode 5.x/usr/bin/lipo wydaje się być rzeczywisty położenie narzędzia rzeczywisty lipo (spróbuj cat /usr/bin/lipo - wygląda jak wielki binarny). W Mavericks/Xcode 5.x, lipo został przeniesiony do XcodeDefault.xctoolchain, a plik binarny pod /usr/bin/lipo jest cienkim opakowaniem, który wydaje się wywoływać tylko xcrun lipo (patrz nm /usr/bin/lipo), który z kolei znajduje lokalizację lipo na podstawie xcode-select.

Prawdopodobnie nowe wersje xcode-select i/lub Mavericks zastępują/usr/bin/lipo wersją opakowania. Jeśli następnie spróbujesz użyć lipo z narzędziem 4.x toolchain xcode-select 'd, to nie zadziała, ponieważ narzędzie nie jest zawarte w starszych wersjach Xcode. Na szczęście wciąż jest on uwzględniony w platformie iPhoneOS.pl z jakiegoś powodu, inaczej prawdopodobnie musiałby zostać pobrany z nieuszkodzonej maszyny < = 10.8.

Wygląda na to, że między programistami/usr/bin a programistami/Toolchains/XcodeDefault.xctoolchain/usr/bin w przełączniku 4-> 5 było dużo szufladkowania - nie zdziwiłoby mnie, gdyby były podobne problemy z innymi mniej często używanymi narzędziami wiersza poleceń.

W końcu fakt, że xcrun się zawiesza, gdy nie może znaleźć narzędzia, wydaje się być zwykłym i prostym błędem.

+1

To q powinno być oznaczone tagami mavericks/xcode/lipo/xcrun i prawdopodobnie nie jest pytonem/etc, ponieważ jest to problem kompilacji toolchain, a nie pytona. – scztt

+0

Jeszcze jedna uwaga - jeśli lipo nadal wisi po powyższym, 'xcrun -k lipo' usunie buforowane (nieprawidłowe) położenie. I, o dziwo, jeśli to zrobisz PODCZAS, kiedy twoja kompilacja zostanie zawieszona, natychmiast się rozłączy. – scztt

+6

jesteś moim bohaterem. –

3

Mam ten sam problem, naprawiony przez zastąpienie/usr/bin/lipo starym z Max OS 10.7.

Aktualizacja: Zamień/usr/bin/lipo z /Aplikacje/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin zadziała. Potrzebujesz aplikacji Xcode lub img.

+0

Zastanawiasz się, jakie mogą być tego konsekwencje? – Bartek

12

Ten działa dla mnie:

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

To powinno być '--install', prawda? – simbabque

+0

Tak, dziękuję, masz rację. – avdyushin

0

I przywrócony /usr/bin/lipo z mojego TimeMachine kopii zapasowej (znacznik czasu przed aktualizacją do OSX 10.9). Następnie XCode 4.x działał dobrze, archiwizacja nie wisiała więcej.

3

Najprostszym rozwiązaniem jest prawdopodobnie przejście na XCode 5.x.

+0

. po prostu musiałem to zrobić z naszym klientem. Mieli zainstalowane najnowsze i najlepsze narzędzia wiersza poleceń, ale starszą wersję XCode 4.1.x Po aktualizacji XCode nie mieliśmy już tego problemu. bardzo, bardzo dziwne. – defbyte

+0

Używam Mavericks i miałem ten problem. Aktualizacja do XCode 6 poprawiła to. – tronbabylove