2014-09-22 22 views
6

Tôi đang gặp sự cố khi cài đặt gói python bằng pip trong virtualenv. Sau khi một số điều tra, nó quay ra có vẻ là một vấn đề với PyYaml. Tôi đã tải xuống phiên bản cuối cùng và cố gắng xây dựng nó. Khi sử dụng python "hệ thống", không có vấn đề gì. Tuy nhiên, khi tôi cố gắng chạy cùng một lệnh (python setup.py cài đặt) sau khi kích hoạt virtualenv của tôi, tôi nhận được lỗi sau:Thiết lập PyYaml bằng pyenv trên Mac OS X; không tìm thấy tệp: python.exe

gcc -bundle -bundle_loader python.exe -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib - L/Users/a/.pyenv/versions/2.7.7/lib build/temp.macosx-10.10-x86_64-2.7/ext/_yaml.o -lyaml -o  build/lib.macosx-10.10-x86_64-2.7/_yaml.so 
ld: file not found: python.exe 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
error: command 'gcc' failed with exit status 1 

Tôi không có ý tưởng nơi nó xuất phát từ ... đầu mối Bất kỳ?

Trả lời

2

Tôi đã gặp phải sự cố tương tự khi sử dụng pyenv. Cách bẩn tôi đã nhận nó để cài đặt được sử dụng

CC=/path/to/virtualenv_dir/bin/python2.7 /path/to/virtualenv_dir/bin/pip install pyyaml 

Nếu bạn đang sử dụng pyenv bạn cũng có thể sử dụng

CC=$(which python) pip install pyyaml 
+1

Bạn có thể giải thích lý do tại sao nó hoạt động không? Nó trông điên rồ vì Python không biên dịch mã C. – Andrei

2

Như đã thảo luận trong pyenv#273, vấn đề xảy ra sau khi cài đặt Python < 2.7.8 trên hệ điều hành Mac.

Bạn có thể sửa chữa nó bản thân:

$ export p=/Users/andrei/.pyenv/versions/2.7.6 
$ sed -i -e "s#python.exe#${p}/bin/python2.7#g" "$p/lib/python2.7/_sysconfigdata.py" 

Các ví dụ là cho 2.7.6, thay thế phiên bản 2.7.7 nếu bạn cần, vv

Nếu bạn không sử dụng pyenv, thay đổi đường dẫn đến nơi lưu trữ Python.

Các vấn đề liên quan