情況是這樣的:Python3重新啓動腳本從另一個腳本
我有2腳本在Python兩種不同的炮彈在Linux上運行: 1° - python3 server.py 2° - python3 roomcontrol.py
我需要用戶可以從server.py重新啓動roomcontrol.py。 我試着用子:
from subprocess import call
dir = os.path.dirname(os.path.realpath(__file__)) + "/roomcontrol.py"
call(["python3",dir])
這些指令只在「server.py」殼開始「roomcontrol.py」的新istance,我需要在自己的殼重新啓動roomcontrol.py。或關閉他的外殼並打開一個新的。
編輯:
我也試過:
import subprocess
dir = os.path.dirname(os.path.realpath(__file__)) + "/roomcontrol.py"
subprocess.Popen([dir], stdout=subprocess.PIPE, shell=True)
它不工作。 它寫了很多東西在server.py的同一個shell中,我的光標變成了一個十字,如果我點擊某個地方,它就像以前一樣。什麼寫入一個小例子:
import: unable to grab mouse `': Resource temporarily unavailable @ error/xwindow.c/XSelectWindow/9199.
import: unable to grab mouse `': Resource temporarily unavailable @ error/xwindow.c/XSelectWindow/9199.
.
.
.
from: can't read /var/mail/xml.dom
/home/stark/Desktop/TrackingOk/Release/roomcontrol.py: 9: /home/stark/Desktop/Tr: not foundlease/roomcontrol.py:
/home/stark/Desktop/TrackingOk/Release/roomcontrol.py: 10: /home/stark/Desktop/T: not foundelease/roomcontrol.py: try:
我還沒有使用子流程,但在文檔[Popen](https://docs.python.org/3.6/library/subprocess.html#subprocess.Popen)中快速瀏覽看起來很有前途。 – Olian04
您是否將shebang添加到腳本roomcontrol.py中? ('#!/ usr/bin/env python') – slallum
@ Olian04我試過了(我編輯過這個帖子) –