Tôi có một phần lớn mã Python 2. Nó muốn kiểm tra Python 3 lúc đầu, và thoát ra nếu python3 được sử dụng. Vì vậy, tôi đã thử:python 2 code: nếu python 3 thì sys.exit()
import sys
if sys.version_info >= (3,0):
print("Sorry, requires Python 2.x, not Python 3.x")
sys.exit(1)
print "Here comes a lot of pure Python 2.x stuff ..."
### a lot of python2 code, not just print statements follows
Tuy nhiên, thoát không xảy ra. Đầu ra là:
$ python3 testing.py
File "testing.py", line 8
print "Here comes a lot of pure Python 2.x stuff ..."
^
SyntaxError: invalid syntax
Vì vậy, nó trông giống như kiểm tra python các toàn mã trước khi thực hiện bất cứ điều gì, và do đó các lỗi.
Có cách nào tốt đẹp cho mã python2 để kiểm tra xem python3 có đang được sử dụng hay không, và nếu có in một cái gì đó thân thiện và sau đó thoát ra?
Bạn cũng có thể sử dụng khối 'if __name__ ==" foo "', hoạt động giống như 'if __name__ ==" __main __ "' nhưng thực hiện khi 'foo' được nhập – inspectorG4dget
Nó sẽ không được xem xét nhiều hơn * Pythonic * để sử dụng EAFP và chỉ cần nhập khẩu the_real_thing bên trong một khối 'try'? – martineau
@martineau: Tôi sẽ không làm điều này trong trường hợp trong tầm tay. 'Import' có thể rất thành công, và các lỗi khác có thể xảy ra trong' main() '. Bạn không muốn kèm theo 'the_real_thing.main() ' trong thử/ngoại trừ. –