2013-04-09 21 views
35

Có cách nào để cài đặt python 3 trên một cài đặt của python 2 mà không làm hỏng bất cứ điều gì? Vấn đề chính là tôi có mã chạy bởi "python xxxxx.py abc123". Có cách nào để thay đổi python 3 thành "python3 xxxx.py abc123" không? Cùng lệnh python là cuộc xung độtLàm cách nào để chạy trăn 2 và 3 trong cửa sổ 7?

+0

Chắc chắn có thể, vì "cài đặt python" chỉ cần trích xuất một loạt các thư mục. Chỉ cần chạy trình cài đặt và bạn sẽ có một thư mục python26 và python32 trong ổ đĩa C.Liên quan đến lệnh, bạn sẽ cần một số không quan trọng với các biến môi trường mỗi khi bạn muốn sử dụng các biến khác, do đó, có thể một kịch bản bash ngắn để sửa đổi PATH là cần thiết? –

+0

http://j.mp/ZfKVrb có lẽ điều này sẽ giúp – dnelson

+0

Không cần thiết không cần thiết từ Python 3.3. – pepr

Trả lời

80

Có một cách tốt hơn để chung sống/ra đời của Python 2 và Python 3 trên Windows. Python 3.3 đã giới thiệu trình khởi chạy Python Python cho Windows (xem http://www.python.org/dev/peps/pep-0397/).

Sau khi cài đặt của Python 3.3, các py.exepyw.exe được sao chép vào thư mục c:\Windows của bạn, và các hiệp hội được thiết lập cho phần mở rộng .py để nó sử dụng launcher. Theo mặc định, Python 2 được khởi chạy cho py script.py. Các py -3 script.py ra mắt Python 3. (Điều này cũng có nghĩa là không có con đường cho Python phải được bổ sung vào môi trường -. Các C:\Windows đã là trong PATH)

Tốt nhất của tất cả là #!python2 trong kịch bản gây lauching qua Python 2, các #!python3 gây ra tung ra các kịch bản thông qua Python 3. Bằng cách này, bạn có thể sử dụng kịch bản cho cả hai phiên bản của Python, và bạn có thể lauch chúng cách thống nhất - py script.py hoặc bằng cách chỉ cần nhấp vào biểu tượng kịch bản.

Có nhiều chi tiết hơn nhưng đây là những gì bạn cần.

Cập nhật: Khi sử dụng Python launcher dành cho Windows, bạn cũng có thể khởi chạy kịch bản Python của bạn từ cmd cửa sổ bằng cách gõ > script.py (có nghĩa là mà không cần gõ một cách rõ ràng py --Thư tên của phóng Python - ở phía trước của kịch bản tên) hoặc thậm chí bằng cách nhập tên không có phần mở rộng .py (chỉ là > script).

Bằng cách này, mọi thứ bắt đầu giống với cách đặt tên tập lệnh Unix (không cần phần mở rộng); tuy nhiên, bạn vẫn phải thêm phần mở rộng .py khi tạo tệp tập lệnh.

(Vâng, nó là nhiều hơn một chút lộn xộn so với phương pháp Unix. Đây là phần chênh lệch giữa "Hãy nghĩ đầu tiên!""Bán đầu tiên!" cách tiếp cận của sự phát triển của hệ điều hành. Dù sao, tôi kudo cho nhóm phát triển Python để tận dụng tốt nhất Windows - bằng cách phát hành trình khởi chạy Python cho Windows.)

+7

Tôi không thấy bất kỳ py.exe hoặc pyw.exe nào. Nhưng khi tôi khởi chạy Python, tôi nhận được: 'Lỗi Python nghiêm trọng: Py_Initialize: không thể tải codec hệ thống tệp Tệp" C: \ Python27 \ lib \ encodings \ __ init__.py ", dòng 123 tăng CodecRegistryError, \ ^ SyntaxError : cú pháp không hợp lệ'. Điều đó có nghĩa python3 đang cố gắng khởi chạy các công cụ python2. – CMCDragonkai

+0

Thực ra py.exe nằm trong C: \ Python33. Nhưng nếu tôi thử khởi động py -3, tôi sẽ gặp lỗi như trên. – CMCDragonkai

+0

@ CMCDragonkai: Tôi không thể xác nhận điều đó. Tôi vừa gỡ cài đặt tất cả các phiên bản Python mà tôi đã có trên đĩa, gỡ bỏ vật lý cũng là C: \ PythonXX (với các gói trang web, v.v.), cũng được gỡ bỏ bằng C: \ Windows \ py.exe và pyw.exe. Sau đó, tôi đã tải xuống và cài đặt http://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi (py.exe không được thêm vào C: \ Windows), và sau đó http: //www.python.org/ftp/python/3.3.2/python-3.3.2.amd64.msi - py.exe và pyw.exe được thêm vào C: \ Windows. Bạn có phiên bản Windows nào? – pepr

6

Không chắc chắn nếu nó sẽ đáp ứng nhu cầu của bạn, nhưng bạn nên có một cái nhìn tại virtualenv: http://www.virtualenv.org/en/latest/

này sẽ cho phép bạn tạo ra môi trường riêng biệt cho Python 2 và 3 (sử dụng - p cờ). Nếu trường hợp sử dụng của bạn là thứ gì đó không hoạt động, hãy cập nhật câu hỏi với một số chi tiết cụ thể hơn và tôi chắc chắn bạn sẽ nhận được các đề xuất khác.

2

Giả sử bạn cài đặt python3 trong một thư mục riêng biệt, bạn cũng có thể đổi tên python 3 thực thi thành python3.exe.

+1

Đổi tên '.exe' phá vỡ việc sử dụng' py -3', được đề xuất bởi @pepr. – Kevin

0

Bạn cần phải chỉnh sửa biến môi trường của bạn để bao gồm Lối Python 3 hoặc Python 2.

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