2012-01-09 73 views
0

我需要打開另一個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

回答

2

如果您在尋找運行腳本中的交互式控制檯,然後我會使用這樣的:

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

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

如果你正在尋找一個Python外殼腳本執行後運行的腳本並繼續,然後我會使用這樣的:

$ python -i <path_to_script> 
0

如果我正確理解你的問題,你想:

  1. 推出了python腳本
  2. 這個腳本本身應該推出一個新的終端窗口
  3. 在這個新的終端,另一個python腳本壽ld運行

根據點3是否必須離開終端窗口打開,解決方案可能會有很大的不同。

如果您不需要窗口打開,只是去os.systemsubprocess。如果你只運行一個python腳本,你可能逃脫只是指定「蟒蛇」的可執行文件,因此是跨平臺的。

如果您確實需要打開窗口,您必須啓動特定操作系統特定的shell +終端(Windows中的cmd.exe; unix世界中的/ bin/sh,/ bin/bash或其他任何東西,可能由xterm包裝)。

但說實話,除非有一些非常具體的要求打開一個完全不同的終端會話,你應該做的只是導入第二個模塊並從第一個模塊運行,或者在內存中讀取它,然後使用exec

0

想來想去,閱讀這個問題和其他人,我找到了解決辦法,有我「的男人我是啞巴」的時刻,而在最後,這將這樣的伎倆:

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

關鍵字有是「開始」。它的功能基本上告訴Windows,要執行的文件與實際的調用者沒有關係,而中提琴則有一個新的控制檯。

我不知道有關Unix,但我相信這將會是類似的,使用的是GNOME終端莫名其妙。