Có cách nào tiêu chuẩn để đảm bảo tập lệnh python sẽ được diễn giải bởi python2 chứ không phải python3? Trên bản phân phối của tôi, tôi có thể sử dụng #!/Usr/bin/env python2 làm shebang, nhưng có vẻ như không phải tất cả các bản phân phối đều là "python2". Tôi có thể gọi một phiên bản cụ thể (ví dụ 2.6) của python, nhưng điều đó sẽ loại trừ những người không có phiên bản đó.Có cách nào tiêu chuẩn để đảm bảo tập lệnh python sẽ được python2 giải thích và không phải python3?
Dường như với tôi rằng điều này sẽ ngày càng trở thành một vấn đề khi distro sẽ bắt đầu đặt python3 làm trình thông dịch python mặc định.
Và, nếu cần thiết, như kwatford chỉ ra trong bình luận của mình, bao gồm một kiểm tra tại thời gian cài đặt trong kịch bản 'setup.py' của gói hoặc tương đương từ' setuptools', 'Distribute',' pip' et al. thường thay đổi các dòng shebang của kịch bản để trỏ đến cá thể cài đặt Python. –
IMHO luôn luôn có sẵn symlink 'python2' để tạo ra trong tương lai, [shebangs có thể phân biệt rõ ràng] (http://unix.stackexchange.com/questions/26573/python-python2-or-python-python3-how- to-package-distribution-python-py2k) –
@Grzegorz: Python PEP 394 mở về chủ đề đó và có khả năng sẽ được triển khai trong bản cập nhật trong tương lai cho Python 2: http://bugs.python.org/issue12627 –