我正在尝试从新的shell窗口中的另一个python脚本启动python脚本。到目前为止我无法做到。有谁知道我怎么能做到这一点?
例如
import subprocess
process = subprocess.Popen('test.py', shell=True, stdout=subprocess.PIPE)
process.wait()
print (process.returncode)
当我运行这个脚本时,它应该在一个新的shell窗口中启动'test.py'。
我正在使用linux,但如果您也可以为Windows提供解决方案,那将非常有用。
答案 0 :(得分:3)
以下是如何在类似Debian的系统上执行此操作:
import subprocess
import shlex
process = subprocess.Popen(
shlex.split("""x-terminal-emulator -e 'bash -c "test.py"'"""), stdout=subprocess.PIPE)
process.wait()
print (process.returncode)
类似的东西应该适用于任何* nix系统。
非常感谢eudoxos指出x-terminal-emulator
!
答案 1 :(得分:1)
启动运行脚本的终端,而不是启动shell。在Linux上,xterm -e test.py
; Windows相当于cmd.exe test.py
我相信(但我可能错了)。