2008-09-06 26 views
14

Nếu tôi định bắt đầu một dự án nguồn mở bằng Python, tôi nên sử dụng phiên bản nào để đảm bảo rằng phần lớn người dùng có thể sử dụng nó trên hệ thống của họ?Phiên bản nào của Python để sử dụng cho khả năng tương thích tối đa

Tôi là loại người nhanh chóng chuyển sang phiên bản tiếp theo (mà tôi sẽ làm khi Python 3 ra mắt) nhưng nhiều người có thể thận trọng hơn nếu phiên bản hiện tại của họ có vẻ hoạt động tốt. Phiên bản nào sẽ đạt được vị trí ngọt ngào nhưng vẫn cho phép tôi tận hưởng những cải tiến ngôn ngữ mới nhất và tuyệt vời nhất?

Trả lời

6

Như python là bằng hiện vật của một giai đoạn chuyển đổi sang python 3 với khả năng tương thích ngược tôi không nghĩ rằng đó là một ý tưởng tốt để đi python 3 chỉ. Dựa trên time line sẽ có ít nhất một hoặc hai bản phát hành sau của chuỗi 2.x sau 2.6/3.0 trong tháng mười.

Bên cạnh việc không có python 3 có sẵn trên nền tảng mục tiêu của bạn, nó sẽ mất một thời gian cho đến khi thư viện python bên ngoài quan trọng sẽ được chuyển và có thể sử dụng trên python 3.

Vì vậy, khi Matthew đề nghị tạm trú tại 2.4/2.5 và giữ transition kế hoạch để python 3 trong tâm trí là một sự lựa chọn vững chắc.

+2

Thật thú vị với tôi rằng tính đến tháng 7 năm 2010, điều tương tự về cơ bản là đúng và không có gì thay đổi. Có lẽ bản phát hành 2.7 sẽ là lời khuyên mới. –

4

Tôi chưa thấy một hệ thống có cài đặt chưa đầy 2.3 trong một thời gian. Chủ yếu là 2,4+ được cài đặt theo mặc định cho hầu hết hệ điều hành tôi sử dụng ngay bây giờ. 2.3 chỉ là trên một máy Solaris cũ hơn. distro Linux có xu hướng có 2.4+, cũng như OS X.

IIRC, 2.4 có rất nhiều các tính năng 2.5 không, nhưng có thể sử dụng chỉ với

from __future__ import * 
1

Bạn có thể sử dụng các phiên bản python khác nhau trên mỗi máy.

Mã hóa một cái gì đó mới, tôi sẽ không sử dụng bất kỳ thứ gì ít hơn python2.5. Bạn có thể làm apt-get install python2.5 trên cổ phiếu debian ổn định.

Đối với cửa sổ, đừng lo lắng về điều đó. Nó rất dễ cài đặt python2.5 msi.

Nếu người dùng không thể làm phiền điều đó, bạn có thể triển khai thực thi với py2exe (đơn giản) và xây dựng trình cài đặt với thiết lập inno (đơn giản trở lại) thì nó sẽ hoạt động giống như ứng dụng windows chuẩn và sẽ sử dụng dlls python riêng của nó, vì vậy không cần phải cài đặt python.

Giống như Peter cho biết: hãy ghi nhớ việc chuyển đổi sang 3.0 nhưng chưa xây dựng trên đó.

1

Python 2.3 hoặc 2.2 nếu bạn có thể sống mà không có nhiều mô-đun được thêm vào (ví dụ: datetime, csv, logging, optparse, zipimport), không sử dụng SSL và sẵn sàng thêm bản mẫu cho True/False.

2.4 thêm trang trí. các biểu thức của trình tạo, reverseed(), sort() và subprocess và các mô-đun thập phân. Mặc dù đây là tất cả tốt đẹp, thật dễ dàng để viết mã Pythonic mà không có chúng (giả sử rằng dự án của bạn sẽ không sử dụng nhiều chúng).

2,5 được thêm vào, nhập tương đối, hỗ trợ 64 bit tốt hơn và tốc độ khá cao. Bạn có thể sống mà không có tất cả những người dễ dàng đủ.

2.6 không được phát hành (mặc dù nó rất gần), do đó, trong khi nó có thể hấp dẫn các nhà phát triển, nó không có khả năng tương thích bạn đang sau.

Hãy xem ghi chú phát hành cho 2.3, 2.4, 2.5 và phiên bản 2.6 sắp tới (sử dụng http://www.python.org/download/releases/2.Y/highlights/ trong đó 'Y' là phiên bản phụ).

FWIW, đối với SpamBay chúng tôi hỗ trợ phiên bản 2.2 trở lên (2.2 yêu cầu cài đặt riêng gói email). Đây không phải là quá thuế, nhưng 2.3 bổ sung là đủ hữu ích và 2.3 đủ tuổi mà chúng tôi có thể sẽ giảm 2,2 trước khi dài.

0

Nếu dự án sẽ chủ đạo và sẽ chạy trên Linux, chỉ cho biết hợp lý là 2,4 - chỉ vì nó là một nỗi đau để cài đặt bất kỳ thứ gì khác như mặc định trên Enterprise Linux.

Trong mọi trường hợp, mọi hệ điều hành hiện đại sẽ/có thể có phiên bản 2.4 trở lên.

0

Bạn nên sử dụng Python 2.7, phiên bản chính thức của Python 2.

Python 3.x hiện đã hạn chế hỗ trợ thư viện của bên thứ 3, và thường không được cài đặt theo mặc định. Vì vậy, bạn đang xem chuỗi 2.x.

Python 2.7 về cơ bản hoàn toàn tương thích ngược với phiên bản 2.xs. Ngoài ra, nó có thể đưa ra cảnh báo không dùng nữa về những thứ không hoạt động trong Python 3. (Đặc biệt, nó sẽ trả tiền để duy trì các bài kiểm tra đơn vị, và để được hiểu về Unicode-vs. byte-strings.) Các cảnh báo sẽ buộc bạn phải viết mã tốt rằng công cụ tự động 2to3 sẽ có thể dịch sang Python 3.

Guido van Rossum officially recommends maintaining a single Python 2 code-base và sử dụng 2to3 cùng với thử nghiệm đơn vị để tạo ra các bản phát hành tương thích cho Python 2 và 3. (Kể từ khi PEP 3000 được viết, Python 2.6 đã được thay thế bằng 2,7.)

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