首页 > 解决方案 > 在pycharm中运行时子进程不起作用

问题描述

好吧,我尝试使用 shell 命令让 python 脚本下载一些 git 数据。但是我希望 git 命令能够“查询”用户登录,并将状态报告给用于调用 python 的 shell。我尝试使用管道进行此操作。

subprocess.run('git clone SERVER ./build',
               shell=True)

但是我没有看到任何事情发生,python 进程只是等待而不要求输入。

当我直接使用 python main.py 在终端中运行它时,它确实有效,只是当通过 pycharm IDE 运行时,输入和输出被吃掉了。
只是为了进一步澄清:当我通过 pycharm 的启动器运行它时,我确实注意到该过程“永远不会结束”,直到我杀死它,提升KeyboardInterrupt. 所以它在“某处”等待用户输入,只是输入没有显示在 pycharm 控制台中。

我该怎么做?如果我不添加shell=True子进程抱怨该git命令不是现有文件/目录。

标签: pythongitpycharmsubprocess

解决方案


在运行设置下,需要设置一个配置标志才能使其工作:

Configuration 选项卡中的Execution下,勾选emulate terminal output in console

在我的情况下,我必须重新启动 pycharm 才能在更新旧配置时生效(它直接在将其添加到新的运行配置时起作用)。


推荐阅读