在不同的命令行界面(CLI)中打开python程序?

问题描述:

我需要打开另一个CLI,并在那里运行一个Python脚本。例如。在不同的命令行界面(CLI)中打开python程序?

python C:\Python27\Scripts\script.py test 
python /path/to/script_folder/script.py test 

我需要同时支持Unix和Windows。

有什么建议吗?

+2

我不明白你的问题。 – 2012-01-09 13:01:39

+0

你的两个命令都应该可以正常工作。你有什么问题? – 2012-01-09 13:22:47

如果您在寻找运行脚本中的交互式控制台,然后我会使用这样的:

import code 
console = code.InteractiveConsole() 
console.interact() 

您可以找到code module documentation的更多信息。特别是,你可能有兴趣在runcoderunsource方法。

如果你正在寻找一个Python外壳脚本执行后运行的脚本并继续,然后我会使用这样的:

$ python -i <path_to_script> 

如果我正确理解你的问题,你想:

  1. 推出了python脚本
  2. 这个脚本本身应该推出一个新的终端窗口
  3. 在这个新的终端,另一个python脚本寿ld运行

根据点3是否必须离开终端窗口打开,解决方案可能会有很大的不同。

如果您不需要窗口打开,只是去os.systemsubprocess。如果你只运行一个python脚本,你可能逃脱只是指定“蟒蛇”的可执行文件,因此是跨平台的。

如果您确实需要打开窗口,您必须启动特定操作系统特定的shell +终端(Windows中的cmd.exe; unix世界中的/ bin/sh,/ bin/bash或其他任何东西,可能由xterm包装)。

但说实话,除非有一些非常具体的要求打开一个完全不同的终端会话,你应该做的只是导入第二个模块并从第一个模块运行,或者在内存中读取它,然后使用exec

想来想去,阅读这个问题和其他人,我找到了解决办法,有我“的男人我是哑巴”的时刻,而在最后,这将这样的伎俩:

command = r'start cmd.exe python "' + <script> + r'" [args]' 
os.system(command) 

关键字有是“开始”。它的功能基本上告诉Windows,要执行的文件与实际的调用者没有关系,而中提琴则有一个新的控制台。

我不知道有关Unix,但我相信这将会是类似的,使用的是GNOME终端莫名其妙。