我正在尝试编写一个程序,它打开一个gnome终端窗口并在其中执行一个python文件。
当我使用子进程模块调用gnome-terminal
子进程时,如下所示:
import subprocess
subprocess.call(['gnome-terminal', '-x', 'python3 '+filename])
我得到以下错误:
Failed to execute child process "python3 /home/user/Documents/test.py” (No such file or directory)
我尝试先用cd命令进入/home/user/Documents/test.py
目录,然后再运行该文件,但不起作用。
发布于 2017-11-09 04:10:18
试试这个:
from os import system
system("gnome-terminal -e 'bash -c \"python3 %s\"'"%filename)
使用分号添加其他命令:
system("gnome-terminal -e 'bash -c \"python3 %s; [second command]\"'")
发布于 2018-08-14 19:48:59
您正在尝试执行文字命令python3 /home/user/Documents/test.py
,该命令显然不存在于您的系统中。
当您在shell中键入该行时,shell将用空格拆分它,最后它将以/home/user/Documents/test.py
作为参数调用python3
。
使用subprocess.call
时,您必须自己进行拆分。
发布于 2018-06-17 00:31:35
我认为您需要将您的文件名作为数组中的另一个元素进行传递。我没有gnome终端,但是我用普通的sh
复制了你的问题。
import subprocess
subprocess.call(['gnome-terminal', '-x', 'python3', filename])
https://stackoverflow.com/questions/47166453
复制相似问题