在pycharm内运行时子进程不工作

2024-05-17 09:03:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试让python脚本使用shell命令下载一些git数据。但是,我希望git命令“查询”用户登录,并向用于调用python的shell报告状态。我试着用管子做这个

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

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

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

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


Tags: 数据run用户git命令脚本true进程
2条回答

我建议您改用subprocess.call

在IDE中运行shell命令时,可能需要指定可执行文件的完整路径

git_exec = '/usr/local/bin/git'

returncode = subprocess.call('{0} clone SERVER ./build'.format(git_exec), 
                             shell=True)
if returncode != 0:
    # Code wasn't executed successfully
    # Do something
    pass

在“运行设置”下,需要设置一个配置标志以使其正常工作:

配置选项卡中的执行下,勾选控制台中的模拟终端输出

在我的例子中,我必须重新启动pycharm,以便在更新旧配置时生效(将其添加到新的运行配置时直接起作用)

相关问题 更多 >