2012-01-15 14 views
5

Khi cài đặt gói bằng Python sử dụng pip, tôi tình cờ gặp các lỗi sau:Tại sao trình cài đặt pip mong đợi gcc-4.2 là tên của trình biên dịch gcc trong OS X Lion?

unable to execute gcc-4.2: No such file or directory 

Rõ ràng, pip đang cố gắng sử dụng gcc-4.2 mà không có trong bất kỳ thư mục nhị phân, cụ thể là/usr/bin. Sau khi nhìn xung quanh trang web này và những trang khác, tôi thấy rằng nhiều người khác đang gặp phải vấn đề tương tự. Tuy nhiên, gcc được cập nhật lên phiên bản 4.2 trong OS X Lion và đây không phải là vấn đề phiên bản, thay vào đó, gcc chỉ được gọi là gcc, chứ không phải gcc-4.2, trong/usr/bin và được liên kết với llvm-gcc. Sau khi thêm gcc-4.2 vào/usr/bin làm symlink thành gcc, pip có thể cài đặt mọi thứ thành công. Tại sao sau đó, pip đó đang tìm gcc-4.2 chứ không phải gcc? Đây có phải là lỗi của pip, OS X Lion, hoặc các gói trong pip đang cố cài đặt với gcc-4.2 không?

Cuối cùng, liên kết tượng trưng của tôi có làm điều đúng đắn trong tình huống này không, hoặc tôi có nên sửa lỗi này theo cách khác không?

Trả lời

6

Hack simlink của bạn là giải pháp phù hợp ngay bây giờ. Cuối cùng, những người hỗ trợ pip cho nền tảng này cần phải ngừng sử dụng các phiên bản trình biên dịch rõ ràng theo cách đó. Đó là một ý tưởng tồi để bắt đầu và sẽ chỉ tồi tệ hơn khi các trình biên dịch trên nền tảng thay đổi.

Trái ngược với câu trả lời của Milad có các giải pháp khác để xác định phiên bản trong trình biên dịch máy chủ và giải pháp của bạn sẽ hoạt động cho đến khi những người hỗ trợ pip trên nền tảng sửa mã của họ.

0

Bạn hack liên kết tượng trưng là giải pháp phù hợp cho bạn. pip chỉ cố gắng để đảm bảo rằng nó đang được cài đặt bằng cách sử dụng phiên bản đúng của GCC. Vì máy tính của bạn được trang bị phiên bản đó, bạn có thể an toàn để trỏ nó vào gcc sẵn có của bạn như là gcc đang tìm kiếm. Nhưng nếu, nói rằng, bạn đã cài đặt gcc-4.1, có thể bạn đã đi đến những nơi không cần thiết.