在不同的命令行界面(CLI)中打开python程序?
问题描述:
我需要打开另一个CLI,并在那里运行一个Python脚本。例如。在不同的命令行界面(CLI)中打开python程序?
python C:\Python27\Scripts\script.py test
python /path/to/script_folder/script.py test
我需要同时支持Unix和Windows。
有什么建议吗?
答
如果您在寻找运行脚本中的交互式控制台,然后我会使用这样的:
import code
console = code.InteractiveConsole()
console.interact()
您可以找到code module documentation的更多信息。特别是,你可能有兴趣在runcode
和runsource
方法。
如果你正在寻找一个Python外壳脚本执行后运行的脚本并继续,然后我会使用这样的:
$ python -i <path_to_script>
答
如果我正确理解你的问题,你想:
- 推出了python脚本
- 这个脚本本身应该推出一个新的终端窗口
- 在这个新的终端,另一个python脚本寿ld运行
根据点3是否必须离开终端窗口打开,解决方案可能会有很大的不同。
如果您不需要窗口打开,只是去os.system
或subprocess
。如果你只运行一个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终端莫名其妙。
我不明白你的问题。 – 2012-01-09 13:01:39
你的两个命令都应该可以正常工作。你有什么问题? – 2012-01-09 13:22:47