2012-04-17 42 views
27

Tôi có Windows Vista 64.Làm thế nào để cài đặt Python 2.7.3 32 bit và 64 bit trên Windows cạnh nhau

Tôi có một số dự án đòi hỏi Python 2.7.3 64 bit và những người khác đòi hỏi phải có Python 2.7.3 32 bit (vì một số phần mở rộng không hoạt động trong 64 bit).

Làm cách nào để ngăn trình cài đặt Python 2.7.3 MSI (32 hoặc 64 bot) xóa phiên bản khác.

Cạnh nhau làm việc cho tôi bằng Python 2.7.2 mà không gặp sự cố.

+2

Nó trông giống như một lỗi cài đặt cụ thể để 2.7.3 –

+0

như một tác phẩm xung quanh bạn chỉ có thể sử dụng một máy ảo cho đến khi họ khắc phục vấn đề, tôi có cùng một vấn đề – pyCthon

Trả lời

26

Điều này dường như hoạt động với tôi trên Windows 7 64 bit. Chọn một phiên bản làm cài đặt mặc định của bạn, ví dụ: 64 bit, và cài đặt nó trước. Trước khi làm bất cứ điều gì khác cài đặt phiên bản khác.

Chỉ định thư mục cài đặt khác và trong màn hình Customize Python 2.7.3 chọn Register Extensions và chọn Entire feature will be unavailable.

+2

Điều này hoạt động hoàn hảo. Cảm ơn rất nhiều Nicola. Tôi tin rằng "Đăng ký phần mở rộng và chọn toàn bộ tính năng sẽ không có sẵn" là khá quan trọng bởi vì nó là những gì quyết định đó sẽ là con trăn mặc định của bạn. – keithxm23

3

Bạn thường có thể cài đặt nhiều phiên bản Python cạnh nhau. Khi cài đặt trong Windows, ngoài việc cài đặt tệp, đăng ký cũng được cập nhật để mọi cài đặt gói/công cụ tiếp theo có thể liệt kê tất cả Cài đặt Python trong m/c hiện tại. Chỉ có vấn đề xảy ra nếu cài đặt là cho cùng một phiên bản nhưng bit khác nhau. Là bởi vì, registry Đường dẫn SOFTWARE \ Python \ Pythoncore \ không phân biệt với bitness và lỗi-sửa chữa, bạn sẽ kết thúc bao phủ rộng installpathPYTHONPATH nếu bạn đang cài đặt cùng một phiên bản với nhau lỗi-sửa chữa hoặc bit khác nhau.

Giải pháp

  • Cài đặt hai phiên bản khác nhau cho bitness khác nhau.
  • Chuẩn bị tập lệnh để cập nhật khóa đăng ký mỗi lần bạn muốn chuyển đổi giữa bit. Tôi tình cờ gặp phải một kịch bản tương tự đơn giản trong effbot thực hiện công việc.

Cập nhật

Như Ruediger Jungbeck chỉ ra rằng ông có thể thấy hai khóa registry khác nhau, tôi đột nhiên nhớ lại một bài thay đổi quan trọng Vista. Trên một hệ thống 64 bit để cho phép truy cập các khóa registry từ ứng dụng 32 bit và 64 bit, Windows chia tách sổ đăng ký tại các nút quan trọng. Đối với các ứng dụng 64 bit, đường dẫn đăng ký riêng của nó nhưng đối với các ứng dụng 32 bit, nó là WoW6432Node. Vì vậy, khi chạy phiên bản 32 bit của phần mở rộng Python \ Tools \, nó sẽ chỉ thấy Wow6432Node. Các ứng dụng 64 bit sẽ chỉ thấy nút gốc. Có các API để truy cập các nút bit chéo nhưng nằm ngoài phạm vi của câu hỏi này. Vì vậy, để tóm tắt, các cửa sổ thông minh xử lý các ứng dụng 32 bit và 64 bit bằng cách tách nút cho phép mở rộng 32 bit để truy cập một cách minh bạch Cài đặt Python 32 bit.

+0

Tôi có thể tìm thấy 2 differen t giá trị. Một trong HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 2.7 trỏ đến phiên bản 64 bit và một HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Python \ PythonCore \ 2.7 trỏ tới phiên bản 32 bit, vì vậy tôi mong đợi rằng mỗi bit tìm thấy nó là Python. Nhưng tại sao trình cài đặt lại nhìn thấy cả hai? –

+0

Aha .... Tôi hoàn toàn quên ... Tôi sẽ cập nhật câu trả lời của tôi – Abhijit

+0

tôi đã thấy bản cập nhật của bạn, nhưng điều đó không giải quyết được vấn đề của tôi. Tôi muốn cả hai bitness được cài đặt cùng một lúc (trên cùng một hệ thống) –

1

Trong khi cài đặt trăn thứ 2, cho Tiện ích mở rộng Đăng ký, hãy chọn tùy chọn "Toàn bộ tính năng sẽ không khả dụng". Python 64 Đường dẫn cài đặt sẽ được đăng ký "HKLM: SOFTWARE \ Python \ PythonCore \ 2.7 \ InstallPath"

Python 64 bit PythonPath sẽ ở trong "HKLM: SOFTWARE \ Python \ PythonCore \ 2.7 \ PYTHONPATH "

Python 32 đường lắp đặt sẽ được trong registry "HKLM: SOFTWARE \ Wow6432Node \ Python \ PythonCore \ 2.7 \ installpath"

Python 32 bit PYTHONPATH sẽ được ở " HKLM: SOFTWARE \ Wow6432Node \ Python \ PythonCore \ 2.7 \ PYTHONPATH"

Customize Python with disabling extions

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