2013-06-19 30 views
7

Điều này đã được yêu cầu và trả lời một vài lần, nhưng vì bạn sẽ không thấy câu trả lời nào trước đây phù hợp với tôi - tôi cảm thấy có gì đó đã thay đổi để làm cho tất cả các câu trả lời cũ đã lỗi thời. Hoặc ít nhất, tôi đang trong một số trường hợp cạnh:python - Bắt Pip sử dụng MinGW32 trên Windows?

Trên hộp Windows 7, tôi đã cài đặt MinGW32 và Python 2.7 (phiên bản 32 bit) (tôi cũng đã thử với Python 2.6 và có cùng kết quả).

  • Biến môi trường đường dẫn được đặt chính xác.

  • Tôi đã chỉnh sửa cygwincompiler.py để xóa các thiết bị điện tử thành -mno-cygwin. Và tôi đã đặt đúng tệp distutils.cfg vào C:\Python27\Lib\distutils.

  • Để rõ ràng: distutils.cfg chứa [build] compiler=mingw32 trên hai dòng.

  • Tôi cũng (chỉ an toàn) đặt pydistutils.cfg trong thư mục %HOME% của mình. Và đặt setup.cfg vào thư mục hiện tại của tôi khi chạy pip. Họ có nội dung giống như distutils.cfg.

Tôi biết điều này là tất cả đều hoạt động vì pip install cythonpip install pycrypto cả hai đều biên dịch thành công.

Tuy nhiên, một số gói vẫn cho tôi lỗi unable to find vcvarsall.bat. Hai ví dụ là: pyproj và numpy.

Giống như đôi khi pip biết sử dụng trình biên dịch MinGW và đôi khi không?

Hơn nữa, nếu tôi sử dụng vỏ MSYS đi kèm với MinGW thì kỳ diệu pip install numpy sẽ thành công. Nhưng pip install pyproj vẫn không thành công với unable to find vcvarsall.bat.

Tôi đã thử tính năng này trên một số máy có cùng kết quả chính xác.

Bất kỳ ai có ý tưởng gì đang xảy ra ở đây? Tại sao pip biết sử dụng mingw32 để biên dịch một số mô đun c chứ không phải các mô-đun khác? Ngoài ra, tại sao pip install numpy hoạt động bên trong vỏ MSYS chứ không phải bên trong vỏ cmd?

THƯỞNG: Nhiều, nhiều câu trả lời cũ hơn đề xuất cài đặt Visual Studio 2008 như một cách để giải quyết lỗi vcvarsall.bat. Nhưng tính đến tháng 5 vừa qua, microsoft không còn phân phối phần mềm này nữa. Có ai biết về một nơi mà người ta vẫn có thể tải về VS2008? Tôi hỏi vì có thể sử dụng vcvarsall.bat thay vì MinGW sẽ giải quyết được vấn đề này.

+0

+1 Tôi có cùng một vấn đề chính xác: đôi khi pip có thể tìm thấy mingw, đôi khi anh ta không thể. – Sam

+0

Bạn không cần tất cả VS2008, bạn chỉ cần SDK cửa sổ, vẫn có sẵn để tải xuống. http://www.microsoft.com/en-us/download/details.aspx?id=3138 (liên kết có thể không đủ tuổi) –

Trả lời

1

visual studio express 2008 http://download.microsoft.com/download/8/B/5/8B5804AD-4990-40D0-A6AA-CE894CBBB3DC/VS2008ExpressENUX1397868.iso

Hoặc nếu bạn là một sinh viên, bạn vẫn có thể nhận được Visual Studio 2008 thông qua DreamSpark https://www.dreamspark.com/

IMHO tôi muốn khuyên bạn sử dụng Visual Studio 2008 vì phân phối chính thức của Python tất cả được biên dịch với Visual Studio và là trình biên dịch cửa sổ "chính thức" cho cpython. http://mail.python.org/pipermail/python-list/2010-April/573606.html

FYI Python 33 được biên dịch bằng Visual Studio 2010.

Cuối cùng, bạn chỉ có thể cài đặt các gói từ đây: http://www.lfd.uci.edu/~gohlke/pythonlibs/

0

Tôi đã phải vật lộn với vấn đề này trong một thời gian, và thấy rằng đôi khi pip dường như bỏ qua MSYS_HOME và không thể tìm thấy pydistutils.cfg, trong trường hợp đó chỉ truy vấn dường như được sao chép thủ công pydistutils.cfg vào virtualenv của bạn ngay trước khi chạy pip install.

Nó chắc chắn sẽ là tuyệt vời nếu ai đó chắc chắn có thể tìm ra lý do tại sao đôi khi nó tìm thấy tập tin này và đôi khi không. Các biến môi trường có vẻ quá khó tính trong MinGW.

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