Đôi khi, nếu câu trả lời là không phải là rất rõ ràng (tôi có nghĩa là bạn không thể quyết định nếu có hoặc không), sau đó nó không quan trọng quá nhiều, và bạn có thể bỏ qua các vấn đề cho đến khi câu trả lời là rõ ràng.
Các #!
mục đích duy nhất là để tung ra các kịch bản. Django tự tải các nguồn và sử dụng chúng. Nó không bao giờ cần phải quyết định những gì thông dịch viên nên được sử dụng. Bằng cách này, #!
thực sự không có ý nghĩa ở đây.
Nói chung, nếu nó là một mô-đun và không thể được sử dụng như một tập lệnh, thì không cần sử dụng #!
. Mặt khác, một nguồn mô-đun thường chứa if __name__ == '__main__': ...
ít nhất một số thử nghiệm tầm thường về chức năng. Sau đó, #!
có ý nghĩa một lần nữa.
Một lý do tốt để sử dụng #!
là khi bạn sử dụng cả hai tập lệnh Python 2 và Python 3 - chúng phải được giải thích bởi các phiên bản Python khác nhau. Bằng cách này, bạn phải nhớ những gì python
phải được sử dụng khi khởi chạy tập lệnh theo cách thủ công (không có #!
bên trong). Nếu bạn có một hỗn hợp các tập lệnh như vậy, thì nên sử dụng phần #!
bên trong, làm cho chúng có thể thực thi được và khởi chạy chúng dưới dạng thực thi (chmod ...).
Khi sử dụng MS-Windows, #!
không có ý nghĩa - cho đến gần đây. Python 3.3 giới thiệu Windows Python Launcher (py.exe và pyw.exe) đọc #!
dòng, phát hiện các phiên bản Python đã cài đặt và sử dụng phiên bản Python chính xác hoặc mong muốn rõ ràng. Vì tiện ích mở rộng có thể được liên kết với một chương trình, bạn có thể có hành vi tương tự trong Windows như với cờ thực thi trong các hệ thống dựa trên Unix.