是否可以從另一個python腳本運行python腳本而不需要終止。從另一個python腳本運行python腳本,但不是作爲子進程
父進程將在創建子進程後立即終止。
我想:
subprocess.Popen([sys.executable, "main.py"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
也:
os.system(...)
是否可以從另一個python腳本運行python腳本而不需要終止。從另一個python腳本運行python腳本,但不是作爲子進程
父進程將在創建子進程後立即終止。
我想:
subprocess.Popen([sys.executable, "main.py"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
也:
os.system(...)
如果您知道其他Python腳本有一個main
方法,你可以簡單地在你的代碼調用其他腳本:
import main
...
exit(main.main())
但這裏的其他腳本調用腳本的上下文中執行。如果你想避免它,你可以使用os.exec...
功能,通過推出一個新的Python解釋器:
import os
...
os.execl(sys.executable, "python", 'main.py')
exec類的功能將取代(在Unix-Linux的)當前的Python解釋器與一個新的。
您可以再補充&
在後臺啓動腳本:
import os
os.system('/path/to/script.sh &')
exit()
在這種情況下推出的shell腳本將繼續即使主Python腳本退出後也可以工作。但請記住,它可能會導致殭屍進程出現在我們的系統中。