为什么Python不让我打开终端?

问题描述:

我想用一些简单的代码在Python中打开终端,然后让它运行一些命令。但是,当我运行这些命令时,没有任何反应,并且终端不能打开。为什么Python不让我打开终端?

import os 
os.system("gnome-terminal -e 'bash -c \"python ~/Documents/program.py; exec bash\"'") 

我从stackoverflow.com其他问题的代码,他们一直说的代码工作,即使我在做同样的事情,他们,我觉得至少。有什么想法吗?另外,我在macOS Sierra上完成了这一切,如果有帮助的话。

+4

为什么你想使用Python,以便运行另一个python的文件中运行一个bash终端改编? –

+2

为什么你一味地试图运行你不明白的代码?你不能运行'terminal -e',因为'terminal'不是* nix上的命令。如果你不明白'gnome-terminal'是什么意思,那么a)你不应该试图运行它,并且b)你应该学会如何在使用脚本语言来做事情之前先使用你的操作系统。 –

+0

你提到终端,这是一个Mac OS应用程序,所以我怀疑你正试图在Mac上做到这一点。你在使用什么操作系统? Windows 7或10? Mac OS X?像Debian这样的Linux发行版? – davedwards

所有功能于一身的Python脚本,无需单独的bash脚本。

import os 

os.system("""osascript -e 'tell app "Terminal" 
      do script "python ~/Documents/program.py" 
      end tell' """) 

Open Terminal Sesame!

从这个答案 Opening a new terminal from the command line and running a command on Mac OS X

+0

它适合你吗?我想是因为它使用Mac OS本机的底层[osascript](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/osascript.1.html)命令,我发现它在那个链接的答案。我们大概可以概括这个使用'bash'脚本(就像你在你的问题中所做的那样),但我还不知道如何去做。取决于你是否有特定的要求或限制,但这是我发现的第一个工作解决方案。 – davedwards

+0

是的,它很棒!谢谢!另外,你可以upvote我的文章?我认为那个粗鲁的人低估了它,现在我可能无法再发布。 –

+0

当然我会的,我认为你是对的,如果这个答案有效,考虑接受它与小绿色复选标记,谢谢! – davedwards

你从哪里运行?这是来自ssh吗?程序gnome-terminal必须有适当的X11显示器来产生GUI。通常,这可以通过设置DISPLAY =:0.0来完成,例如export DISPLAY=:0.0

terminal -e将不起作用,因为它不是一个命令。 gnome-terminal是可以执行的命令。