首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python 3中调用gnome终端子进程时“无法执行子进程(没有这样的文件或目录)”

在Python 3中调用gnome终端子进程时“无法执行子进程(没有这样的文件或目录)”
EN

Stack Overflow用户
提问于 2017-11-08 03:59:12
回答 4查看 4.8K关注 0票数 2

我正在尝试编写一个程序,它打开一个gnome终端窗口并在其中执行一个python文件。

当我使用子进程模块调用gnome-terminal子进程时,如下所示:

代码语言:javascript
复制
import subprocess
subprocess.call(['gnome-terminal', '-x', 'python3 '+filename])

我得到以下错误:

代码语言:javascript
复制
Failed to execute child process "python3 /home/user/Documents/test.py” (No such file or directory)

我尝试先用cd命令进入/home/user/Documents/test.py目录,然后再运行该文件,但不起作用。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-11-09 04:10:18

试试这个:

代码语言:javascript
复制
from os import system
system("gnome-terminal -e 'bash -c \"python3 %s\"'"%filename)

使用分号添加其他命令:

代码语言:javascript
复制
system("gnome-terminal -e 'bash -c \"python3 %s; [second command]\"'")
票数 -1
EN

Stack Overflow用户

发布于 2018-08-14 19:48:59

您正在尝试执行文字命令python3 /home/user/Documents/test.py,该命令显然不存在于您的系统中。

当您在shell中键入该行时,shell将用空格拆分它,最后它将以/home/user/Documents/test.py作为参数调用python3

使用subprocess.call时,您必须自己进行拆分。

票数 2
EN

Stack Overflow用户

发布于 2018-06-17 00:31:35

我认为您需要将您的文件名作为数组中的另一个元素进行传递。我没有gnome终端,但是我用普通的sh复制了你的问题。

代码语言:javascript
复制
import subprocess
subprocess.call(['gnome-terminal', '-x', 'python3', filename])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47166453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档