Tôi có một kịch bản Python sử dụng Python phiên bản 2,6 cú pháp (Trừ lỗi như giá trị :) mà phiên bản 2.5 phàn nàn về. Vì vậy, trong kịch bản của tôi, tôi đã bao gồm một số mã để kiểm tra phiên bản trình thông dịch Python trước khi tiếp tục để người dùng không bị trúng một lỗi khó chịu, tuy nhiên, bất kể tôi đặt mã ở đâu, nó không hoạt động. Một khi nó chạm cú pháp lạ nó ném lỗi cú pháp, bỏ qua bất kỳ nỗ lực nào của tôi trong việc kiểm tra phiên bản.Kiểm tra Phiên bản của Python Interpreter Khi Thi hành Script Với không hợp lệ Cú pháp
Tôi biết tôi chỉ đơn giản có thể đặt một khối thử/ngoại trừ khu vực mà cú pháp SyntaxError xuất hiện và tạo ra thông báo ở đó nhưng tôi tự hỏi nếu có một cách "thanh lịch" hơn. Vì tôi không phải là rất quan tâm đến việc đặt thử/ngoại trừ các khối trên mã của tôi để giải quyết vấn đề phiên bản. Tôi đã xem xét sử dụng tệp __ init__.py nhưng người dùng sẽ không nhập/sử dụng mã của tôi làm gói, vì vậy tôi không nghĩ rằng tuyến đường đó sẽ hoạt động, trừ khi tôi bị thiếu ...
đây là phiên bản mã kiểm tra của tôi:
import sys
def isPythonVersion(version):
if float(sys.version[:3]) >= version:
return True
else:
return False
if not isPythonVersion(2.6):
print "You are running Python version", sys.version[:3], ", version 2.6 or 2.7 is required. Please update. Aborting..."
exit()
Đúng, điều này đã làm được điều này. Cảm ơn! – Stunner
Điều này không cần thiết phải không? –
Làm thế nào là không cần thiết? Toàn bộ mô-đun được kiểm tra cú pháp trước khi một dòng mã được chạy, vì vậy không thể bắt SyntaxError hoặc thực hiện kiểm tra phiên bản trước khi quá muộn mà không có tập lệnh trình bao bọc. – javawizard