python - 在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
命令不是现有文件/目录。
解决方案
在运行设置下,需要设置一个配置标志才能使其工作:
在Configuration 选项卡中的Execution下,勾选emulate terminal output in console。
在我的情况下,我必须重新启动 pycharm 才能在更新旧配置时生效(它直接在将其添加到新的运行配置时起作用)。
推荐阅读
- docker - Jenkins 管道抛出错误。“打开 ./dockerignore 权限被拒绝
- python-3.x - python3内核在jupyter笔记本中不起作用
- ios - 重用 JSONDecoder 或在每个请求上重新创建它?
- symfony - FOSUserBundle 未检测到重复的用户名
- c# - HttpPost 在 localhost 中有效,但在服务器上发布后无效
- java - 火花 Java API。访问 RDD 的最后一个元素
- c++ - 套接字 recv() 函数
- awk - 如何在多行模式和第二个字符串模式之间提取多行
- azure - 在具有数据类型多选的实体中加载 Dynamics CRM 中的数据
- linux-kernel - Allwinner A13 在启动时挂起并返回“SPL:不支持的启动设备!” 错误