"Failed to execute child process (No such file or directory)" 在 Python 中调用 gnome-terminal 子进程时 3
"Failed to execute child process (No such file or directory)" when calling gnome-terminal subprocess in Python 3
我正在尝试编写一个打开 gnome 终端 window 并在其中执行 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
,然后 运行 文件,但是没用。
试试这个(我假设在 PATH 中设置了 python3)
from subprocess import Popen
command="gnome-terminal -x python3"+filename
proc=Popen(command)
如果这不起作用
然后先尝试 运行 您的 python 文件,看看它是否有效
python filename
试试这个:
from os import system
system("gnome-terminal -e 'bash -c \"python3 %s\"'"%filename)
使用分号添加其他命令:
system("gnome-terminal -e 'bash -c \"python3 %s; [second command]\"'")
我认为您需要将文件名作为数组中的另一个元素传递。我没有 gnome 终端,但我用 sh
.
复制了你的问题
import subprocess
subprocess.call(['gnome-terminal', '-x', 'python3', filename])
您正在尝试执行文字命令 python3 /home/user/Documents/test.py
,这显然在您的系统中不存在。
当您在 shell 中键入该行时,shell 会将其拆分为空格,最后它将以 /home/user/Documents/test.py
作为参数调用 python3
。
使用subprocess.call
时,您必须自己进行拆分。
我正在尝试编写一个打开 gnome 终端 window 并在其中执行 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
,然后 运行 文件,但是没用。
试试这个(我假设在 PATH 中设置了 python3)
from subprocess import Popen
command="gnome-terminal -x python3"+filename
proc=Popen(command)
如果这不起作用 然后先尝试 运行 您的 python 文件,看看它是否有效
python filename
试试这个:
from os import system
system("gnome-terminal -e 'bash -c \"python3 %s\"'"%filename)
使用分号添加其他命令:
system("gnome-terminal -e 'bash -c \"python3 %s; [second command]\"'")
我认为您需要将文件名作为数组中的另一个元素传递。我没有 gnome 终端,但我用 sh
.
import subprocess
subprocess.call(['gnome-terminal', '-x', 'python3', filename])
您正在尝试执行文字命令 python3 /home/user/Documents/test.py
,这显然在您的系统中不存在。
当您在 shell 中键入该行时,shell 会将其拆分为空格,最后它将以 /home/user/Documents/test.py
作为参数调用 python3
。
使用subprocess.call
时,您必须自己进行拆分。