2016-02-25 59 views
0

我有一个非常基本的subprocess.Popen命令,如:为什么PyCharm会杀死我的子进程.Popen?

cmd = ['docker', 'run', '--name=test','server'] 
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, 
        stderr=subprocess.PIPE) 

当我从终端Python脚本运行此,这正常启动泊坞窗图像和图像一直持续到我docker stop它。

但是,当我从PyCharm 5运行相同的代码时,上面的行完成时立即停止泊坞窗图像。

我已经在调试器中验证了这一点(运行docker ps -a显示此图片在PyCharm启动时立即死亡)。

为了在PyCharm下运行时保持我的子进程打开,我需要做些什么?不能运行调试器是非常烦人的。

+0

愚蠢的问题,但你配置码头运行在PyCharm根据本指南:https://blog.jetbrains.com/pycharm/2015/12/using-docker-in-pycharm/。 PyCharm的一个特点是支持docker。因此,您可能需要按照自己的配置对其进行更友好的用户界面,才能使其运行正常。 – idjaw

+0

@idjaw - 纠正我,如果我错了,但不是关于使用Python解释器作为PyCharm解释器在Docker容器中运行的博客文章?看起来他只需要执行子进程调用。 – BingsF

+0

@BingsF是的,但是,有一部分文档解释了如何连接到码头集装箱。这可能是缺失的一块。 – idjaw

回答

-2

您打印出Popen调用(stdout和stderr)的输出吗?它说什么?

从IDE启动子进程可能会非常棘手,因为某些环境变量(如PATH)可能无法以与shell相同的方式进行设置。

+1

这不是一个答案。它应该是一个评论。 –