Kiểm tra Python 2 hay Python 3

Post by dangsonbk on 21-08-2017

Khác biệt giữa Python 2 và Python 3 tạo ra khá nhiều khó khăn cho lập trình viên khi viết script để có thể chạy được trên cả 2 môi trường. Một ví dụ thường gặp đó là sự khác biệt giữa việc sử dụng các hàm raw_input()input() trên Python 2 và Python 3. Tham khảo: nhập liệu từ bàn phím trên Python

Để tránh việc phải sửa lại code khi thay đổi môi trường chạy cũng như cho phép script sau khi viết có thể chạy được trên nhiều máy khác nhau, một cách thường được sử dụng đó là kiểm tra phiên bản Python đang chạy sau đó sử dụng thư viện hoặc lệnh tương ứng. Việc kiểm tra này có thể được thực hiện thông qua thư viện cung cấp sẵn sys của Python, bạn chỉ việc kiểm tra giá trị của sys.version_info với tuple (3, 0)

Đầu tiên, import thư viện sys:

import sys

Sau đó kiểm tra giá trị của tuple sys.version_info. Ví dụ sau import thư viện base64 tùy theo phiên bản của Python:

if (sys.version_info > (3, 0)):
    # Python 3
    import base64
    return base64.b64encode(data).decode()
else:
    # Python 2
    return data.encode("base64")

Chi tiết bạn có thể tham khảo: Python version_info

A tuple containing the five components of the version number: major, minor, micro, releaselevel, and serial. All values except releaselevel are integers; the release level is ‘alpha’, ‘beta’, ‘candidate’, or ‘final’. The version_info value corresponding to the Python version 2.0 is (2, 0, 0, ‘final’, 0). The components can also be accessed by name, so sys.version_info[0] is equivalent to sys.version_info.major and so on.

tags: python2, python3