Ich bin ein Python-Programm auf einem Server ausgeführt wird, und auf meinem Konto auf dem Server habe ich die Python-Version in .bashrc wie folgt festgelegt:Neustart von Python-Skript innerhalb Skript mit dem gleichen Python-Version
alias python="python2.7"
Ich habe ein Python-Skript, das ich gerne selbst neu starten könnte. Es funktioniert gut lokal, aber wenn ich es auf dem Server neu starte, funktioniert es einmal und wechselt dann zu einer anderen Version von Python. Ich habe die folgende Funktion:
def restartScript(self):
print("Restarting server")
print(sys.executable,['python']+sys.argv)
os.execv(sys.executable,['python']+sys.argv)
Das erste Mal, wenn ich versuche, es neu zu starten, gibt der folgende:
/usr/local/bin/python2.7 ['python', 'server.py']
jedoch das zweite Mal, dass ich den Server laufen, druckt es die folgenden:
/usr/local/bin/python ['python', 'server.py']
Dies gibt auch einen Fehler, weil ich ein Modul verwende, das für /usr/local/bin/python2.7 installiert ist, aber nicht für/usr/local/bin/python installiert ist.
Gibt es einen einfachen Weg, um sicherzustellen, dass der Server immer mit/usr/local/bin/python2.7 neu startet? Ich möchte es flexibel machen, damit jemand diesen Neustart benutzen kann, ob er seine Standardversion von Python in .bashrc definiert hat oder eine virtuelle Umgebung benutzt. Würde es auch funktionieren, wenn sie Python 3 oder Python 2 verwenden.
Mögliches Duplikat [Zwei Versionen von Python auf Linux. wie man 2.7 zum Standard macht] (http://stackoverflow.com/questions/19256127/two-versions-of-python-onlinux-how-to-make-2-7-the-default) – Elodin
Ich würde gerne um es so flexibel zu machen, dass jemand diesen Neustart benutzen kann, egal, ob sie ihre Standardversion von Python in .bashrc definiert haben (wie ich oben habe) oder eine virtuelle Umgebung benutzen. – user1763510