2013-09-06 31 views
25

Đã cố cài đặt psycopg2 với cả easy_install hoặc pip và thiết bị đầu cuối bị kẹt trong vòng lặp giữa xcrun và lipo.xcrun/lipo đóng băng với OS X Mavericks và 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' 

Nó bị trả lại giữa xcrun và lipo và bị kẹt vĩnh viễn trong vòng lặp này. Sẽ đánh giá cao một số hiểu biết về điều này.

Tôi đang sử dụng OS X Mavericks 10.9, phiên bản mới nhất.

Trả lời

50

Một sửa chữa thích hợp hơn là:

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 

Tại sao: sửa chữa XFX khả năng sẽ phá vỡ việc có thể sử dụng xcode-select để chọn toolchain của bạn trong các phiên bản tương lai của Xcode.

Pre- Mavericks và Xcode 5.x,/usr/bin/lipo có vẻ là thực tế vị trí của công cụ lipo thực tế (thử cat /usr/bin/lipo - trông giống như một nhị phân lớn). Trong Mavericks/Xcode 5.x, lipo được chuyển đến XcodeDefault.xctoolchain và nhị phân tại /usr/bin/lipo là một wrapper mỏng xuất hiện chỉ gọi xcrun lipo (xem nm /usr/bin/lipo), từ đó tìm thấy vị trí của lipo dựa trên xcode-select.

Có thể, phiên bản mới của xcode-select và/hoặc Mavericks thay thế/usr/bin/lipo bằng phiên bản trình bao bọc. Nếu sau đó bạn cố gắng sử dụng lipo với chuỗi công cụ 4.x xcode-select 'd, nó sẽ không hoạt động, vì công cụ này không có trong các phiên bản cũ của Xcode. May mắn thay, nó vẫn được bao gồm trong iPhoneOS.platform vì một lý do nào đó, nếu không bạn có thể phải kéo nó từ máy < = 10.8 không bị hỏng.

Dường như có rất nhiều công cụ xáo trộn giữa Nhà phát triển/usr/bin và Nhà phát triển/Toolchains/XcodeDefault.xctoolchain/usr/bin trong chuyển đổi từ 4 đến 5 - nó sẽ không làm tôi ngạc nhiên nếu có cũng là những vấn đề tương tự với các công cụ dòng lệnh ít thường được sử dụng khác.

Cuối cùng, thực tế là xcrun treo khi không thể tìm thấy công cụ có vẻ giống như một lỗi táo, đơn giản và đơn giản.

+1

Điều này q nên được gắn thẻ với mavericks/xcode/lipo/xcrun và có lẽ không phải python/etc, vì nó là một vấn đề toolchain xây dựng và không phải là một vấn đề python. – scztt

+0

Một lưu ý khác - nếu lipo vẫn bị treo sau khi ở trên, 'xcrun -k lipo' sẽ xóa vị trí được lưu trong bộ nhớ cache (không chính xác). Và, awesomely, nếu bạn làm điều này TẠI SAO xây dựng của bạn được treo, nó sẽ ngay lập tức unhang. – scztt

+6

bạn là anh hùng của tôi. –

3

Tôi gặp vấn đề tương tự, được sửa bằng cách thay thế/usr/bin/lipo bằng giá trị cũ từ Max OS 10.7.

Cập nhật: thay thế/usr/bin/lipo bằng /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin sẽ hoạt động. Bạn cần ứng dụng Xcode hoặc tệp img.

+0

Tự hỏi loại hậu quả này có thể có? – Bartek

12

một này làm việc cho tôi:

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

Điều này phải là '--install', đúng không? – simbabque

+0

Vâng, cảm ơn, bạn đã đúng. – avdyushin

0

tôi khôi phục lại từ bản sao lưu /usr/bin/lipoTimeMachine của tôi (timestamp trước khi cập nhật lên OSX 10.9). Sau đó, XCode 4.x làm việc tốt, lưu trữ không treo nữa.

3

Giải pháp đơn giản nhất có thể là nâng cấp lên XCode 5.x.

+0

thực sự. chỉ cần làm việc này với khách hàng. Họ đã cài đặt Công cụ Dòng lệnh mới nhất và tuyệt vời nhất, nhưng phiên bản XCode 4.1.x cũ hơn Sau khi chúng tôi nâng cấp XCode, chúng tôi không còn gặp sự cố này nữa. rất rất lạ. – defbyte

+0

Tôi đang chạy Mavericks và gặp sự cố này. Nâng cấp lên XCode 6 đã sửa nó. – tronbabylove