"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时,您必须自己进行拆分。