Ich habe einen Python-Code, den ich mit Python3 bleiben soll. Aber manchmal vergesse ich es ein python3 Code ist und führen Sie es wie folgt aus:elegante Möglichkeit, automatisch von Python zu Python3 zu wechseln
$ python foo.py
Ich nehme eine Strategie wie folgt aus:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys,os,warnings
if sys.version_info < (3,0):
sys.argv.insert(0,__file__)
warnings.warn("Switch back to python3 automatically")
os.execv("/usr/bin/python3",sys.argv)
Gibt es eine elegante Möglichkeit, das Gleiche zu tun?
Da Sie '#!/Usr/bin/python3' einfügen, starten Sie es einfach mit './Foo.py'. – polku
Und wenn Sie Python3 benötigen: Führen Sie das Skript nicht magisch erneut aus, was zu allen möglichen Brüchen führen kann. Lass das Skript einfach krächzen und sterben. – dhke
@polku Ich weiß. Aber der Code ist ein Modul des Hauptprogramms, unter __name__ == "__main__" gibt es einen Testfall. Ich werde es nicht "chmod + x" machen. Ich teste es mit "python3 foo.py". – wonghang