我正在研究一个用于分析天文图像的python脚本,我正在尝试在python脚本中打开一个DS9窗口(DS9是一个允许交互式查看和分析图像的实用程序)。通常我会打开DS9进入Linux终端并输入:
>ds9 &
然后会弹出另一个窗口。
我尝试通过编写以下行来在我的python脚本中模仿它:
os.system('ds9 &')
当我运行脚本时,会弹出DS9窗口,但在我关闭DS9窗口之前,其余的脚本都不会运行。这给了我错误,因为后面的任务需要打开DS9窗口。
我想知道是否有办法在python脚本中打开一个窗口,并且仍然让其余的脚本继续运行。
也许:
os.system('ds9 &')
不是正确的方法吗?
答案 0 :(得分:1)
您可以使用subprocess
模块
subprocess
是一种更新的方法来生成流程,而不是使用os.spawn*()
或os.system()
。
在你的情况下:
import subprocess
subprocess.Popen(["ds9"])
这应该在后台运行 ds9 。
请参阅文档here。