Vấn đề: bạn có Python 64 bit và trình cài đặt 32 bit. Điều này sẽ gây ra vấn đề cho các mô-đun mở rộng.
Lý do tại sao trình cài đặt không tìm thấy Python là mô phỏng 32 bit trong suốt từ Windows 7. Các chương trình 64 bit và 32 bit sẽ ghi vào các phần khác nhau của sổ đăng ký Windows.
64-bit: HKLM|HKCU\SOFTWARE\
32-bit : HKLM|HKCU\SOFTWARE\wow6432node\
.
Điều này có nghĩa là trình cài đặt Python 64 bit ghi vào HKLM\SOFTWARE\Python
, nhưng trình cài đặt setuptools 32 bit nhìn vào HKLM\SOFTWARE\wow6432node\Python
(điều này được xử lý bởi các cửa sổ tự động, các chương trình không chú ý). Đây là hành vi dự kiến và không phải là một lỗi.
Thông thường, bạn có những lựa chọn sau:
- cách "sạch": sử dụng Python 32 bit nếu bạn phải sử dụng các mô-đun hoặc tiện ích mở rộng 32 bit
- cách "sạch" khác: chỉ sử dụng trình cài đặt 64 bit khi sử dụng Python 64 bit (xem bên dưới)
- câu trả lời ở trên gợi ý: sao chép
HKLM\SOFTWARE\Python
vào HKLM\SOFTWARE\wow6432node\Python
, nhưng điều này sẽ gây ra sự cố với phân phối nhị phân, vì Python 64 bit không thể tải các mô-đun được biên dịch 32 bit (KHÔNG làm điều này!)
- cài đặt các mô-đun Python thuần túy với setuptools thay vì trình cài đặt distutils (easy_install hoặc pip)
Ví dụ, đối với chính setuptools, bạn không thể sử dụng trình cài đặt 32 bit cho Python 64 bit vì nó bao gồm các tệp nhị phân. Nhưng có trình cài đặt 64 bit tại http://www.lfd.uci.edu/~gohlke/pythonlibs/ (cũng có nhiều trình cài đặt cho các mô-đun khác) . Ngày nay, nhiều gói trên PyPi có phân phối nhị phân, vì vậy bạn có thể cài đặt chúng qua pip.