Cài đặt SetupTools trên Windows 64 bit


133

Tôi đang chạy Python 2.7 trên Windows 7 64 bit và khi tôi chạy trình cài đặt cho setuptools, nó sẽ cho tôi biết Python 2.7 chưa được cài đặt. Thông báo lỗi cụ thể là:

`Python Version 2.7 required which was not found in the registry`

Phiên bản Python đã cài đặt của tôi là:

`Python 2.7 (r27:82525, Jul  4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32`

Tôi đang xem trang web setuptools và nó không đề cập đến bất kỳ trình cài đặt nào cho Windows 64 bit. Tôi đã bỏ lỡ điều gì hay tôi phải cài đặt nó từ nguồn?


7
Lưu ý cho độc giả: Cuộn xuống, câu trả lời được chấp nhận không phải là câu trả lời hay nhất.

Thật không may, trình cài đặt SetupTools 64 bit không tồn tại khi tôi đăng câu hỏi của mình, vì vậy tôi đã chấp nhận cách giải quyết, biết rõ rằng đó là một bản hack.
tử

2
@JohnRobertson câu trả lời tốt nhất là gì?
RRS

Câu trả lời:


91

Rõ ràng (đã gặp phải các vấn đề 64 và 32 bit liên quan trên OS X), có một lỗi trong trình cài đặt Windows . Tôi tình cờ gặp cách giải quyết này , điều này có thể giúp - về cơ bản, bạn tạo giá trị đăng ký của riêng mình HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPathvà sao chép giá trị InstallPath từ đó HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath. Xem câu trả lời dưới đây để biết thêm chi tiết.

Nếu bạn làm điều này, hãy cẩn thận rằng setuptools chỉ có thể cài đặt các thư viện 32 bit .

LƯU Ý: các câu trả lời dưới đây cung cấp chi tiết hơn, vì vậy vui lòng đọc chúng.


1
Cũng hoạt động với cài đặt PIL (PIL-1.1.7.win32-py2.7).
panny

142

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\Pythonvà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.


7
Liên kết tuyệt vời cho các trình cài đặt không chính thức!
Andriy Drozdyuk

Cảm ơn. Đã giải quyết vấn đề của tôi cho Python 2.7 với amd64.
nmat

2
Tương tự như vậy đối với cách khác (2.7 32 và setuptools 64) stackoverflow.com/a/10966394/404385 <- để tìm hiểu xem python ver đã cài đặt của bạn và 32/64
Cu7l4ss

1
Liên kết đó là vàng nguyên chất!
Paul Becotte

1
Đối với những người không biết cách cài đặt tệp whl, bạn cài đặt chúng bằng pip, nhưpip install xyz.whl
arun

69

Tôi đã tạo một tệp đăng ký (.reg) sẽ tự động thay đổi sổ đăng ký cho bạn. Nó hoạt động nếu được cài đặt trong "C: \ Python27":

Tải xuống phiên bản 32 bit HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

Tải xuống phiên bản 64 bit HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\


3
Tệp REG của bạn hoạt động với tôi nhưng tôi gặp vấn đề ngược lại nên tôi phải xóa "\ Wow6432Node" khỏi tất cả các tên chính.
pwhe23

Tôi đoán tôi có thể đăng một liên kết cho 32 bit ..: P
Joe DF

Tập tin vá tuyệt vời! Tuyệt quá! Cảm ơn vì điều đó!!
Benny Neugebauer

@BennyNeugebauer Không có vấn đề.
Joe DF

@EvanCaldwell Không có vấn đề!
Joe DF

28

Vâng, bạn đã đúng, vấn đề là với trình cài đặt Python 64 bit và 32 bit cho setuptools.

Cách tốt nhất để cài đặt các công cụ thiết lập 64 bit trên Windows là tải ez_setup.py về C: \ Python27 \ Sc scripts và chạy nó. Nó sẽ tải xuống tệp .egg 64 bit thích hợp cho setuptools và cài đặt nó cho bạn.

Nguồn: http://pypi.python.org/pypi/setuptools

PS Tôi khuyên bạn không nên sử dụng trình cài đặt .exe 64 bit của bên thứ ba hoặc thao tác đăng ký


2
không thể tin được giải pháp này nhanh và dễ dàng như thế nào. Tôi đã dành hàng giờ bị mắc kẹt trên các con đường khác.
Brett

1
Giải pháp tốt nhất và an toàn nhất theo ý kiến ​​của tôi!
djfranzwa

9

Tạo một tệp có tên python2.7.reg(tệp đăng ký) và đặt nội dung này vào đó:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help\MainPythonDocumentation]
@="C:\\Python27\\Doc\\python26.chm"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath]
@="C:\\Python27\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath\InstallGroup]
@="Python 2.7"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Modules]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\PythonPath]
@="C:\\Python27\\Lib;C:\\Python27\\DLLs;C:\\Python27\\Lib\\lib-tk"

Và chắc chắn rằng mọi con đường đều đúng!

Sau đó chạy (hợp nhất) nó và thực hiện :)


Cảm ơn! Tôi có thể xác nhận nó hoạt động cho thiết lập python 2.76 và h5py. Có lẽ chỉ cần cập nhật đường dẫn doc tới python276.chm để có thứ tự tốt :)
mork

9

Lấy tập tin register.pytừ ý chính này . Lưu nó trên ổ C hoặc ổ D của bạn, đi đến CMD để chạy nó với:

'python register.py'

Sau đó, bạn sẽ có thể cài đặt nó.


Đây là giải pháp đơn giản nhất. Cảm ơn! Tôi gặp phải vấn đề này khi thử cài đặt wxPython2.8-win32-unicode-2.8.12.1-py27 và nó luôn phàn nàn với python không được đăng ký
Robert1968


1

Để cho phép trình cài đặt Windows tìm thư mục Python đã cài đặt trong Windows 7 , OR, hãy thay đổi cài đặt Python nào để cài đặt trình cài đặt vào, thêm đường dẫn đã cài đặt vào giá trị (Mặc định) của khóa đăng ký InstallPath :

HKEY_LOCAL_MACHINE \ PHẦN MỀM \ Wow6432Node \ Python \ PythonCore \ 2.X \ InstallPath

Trong đó " X " là phiên bản Python (nghĩa là 2.5, 2.6 hoặc 2.7).


1

Tôi đã thử ở trên và thêm các khóa đăng ký vào LOCALMACHINE không hoàn thành công việc. Vì vậy, trong trường hợp bạn vẫn bị mắc kẹt, hãy thử điều này.

Windows Registry Editor Phiên bản 5,00

[HKEY_CURRENT_USER \ PHẦN MỀM \ Python]

[HKEY_CURRENT_USER \ PHẦN MỀM \ Python \ PythonCore]

[HKEY_CURRENT_USER \ PHẦN MỀM \ Python \ PythonCore \ 2.7]

[HKEY_CURRENT_USER \ PHẦN MỀM \ Python \ PythonCore \ 2.7 \ Trợ giúp]

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 \ Help \ Tài liệu Python chính] @ = "C: \ Python27 \ Doc \ python272.chm"

[HKEY_CURRENT_USER \ PHẦN MỀM \ Python \ PythonCore \ 2.7 \ InstallPath] @ = "C: \ Python27 \"

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 \ InstallPath \ Installgroup] @ = "Python 2.7"

[HKEY_CURRENT_USER \ PHẦN MỀM \ Python \ PythonCore \ 2.7 \ Mô-đun]

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 \ PythonPath] @ = "C: \ Python27 \ Lib; C: \ Python27 \ DLLs, C: \ Python27 \ Lib \ lib-tk"

Sao chép dán ở trên trong notepad và lưu nó dưới dạng Python27.reg. Bây giờ chạy / hợp nhất các tập tin như được đề cập trong các câu trả lời ở trên. (Đảm bảo rằng các đường dẫn cài đặt Python được sửa theo cài đặt của bạn.

Nó chỉ đơn giản là, những gì các câu trả lời trên gợi ý cho một máy cục bộ, cho người dùng hiện tại.


0

Đây là một liên kết đến một bài viết / chủ đề khác. Tôi đã có thể chạy tập lệnh này để tự động đăng ký Python 2.7. (Đảm bảo chạy nó từ Python 2.x .exemà bạn muốn đăng ký!)

Để đăng ký Python 3.x tôi đã phải sửa đổi printcú pháp và nhập winreg(thay vì _winreg), sau đó chạy Python 3 .exe.

https://stackoverflow.com/a/29633714/3568893


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.