Tôi đã viết một mô-đun thuần-Python cho Python 3.0/3.1 mà tôi cũng muốn làm cho nó tương thích với 2.x (có lẽ chỉ 2.6/2.7) để cung cấp cho đối tượng rộng nhất có thể.Viết mô-đun cho cả Python 2.x và 3.x
Mô-đun có liên quan đến việc đọc và viết một bộ định dạng tệp có liên quan, do đó, sự khác biệt giữa các phiên bản 2.x và 3.x sẽ nhẹ - ví dụ: io.BytesIO
thay vì StringIO.StringIO
- nhưng không phải tất cả chúng đều dễ dàng được xử lý thông qua try/except blocks, chẳng hạn như thiết lập metaclasses.
Cách chính xác để xử lý vấn đề này là gì? Hai mã số gần giống hệt nhau phải được giữ đồng bộ hoặc một codebase được phát hiện tính năng? Một codebase đơn, sạch cộng với 2to3 hoặc 3to2?
HOWTO của Python [Chuyển mã Python 2 sang Python 3] (http://docs.python.org/py3k/howto/pyporting.html) đưa ra một số lời khuyên tốt về chủ đề này. –