You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python脚本中执行git pull失败的问题求助及解决方案咨询

Python脚本中执行git pull失败的问题求助及解决方案咨询

各位大佬好,我遇到一个棘手的问题,想请教下大家:

我在Windows Server 2022上用Python 3.6.8写了一个Flask应用,当接口收到HTTP请求时,需要在指定的Git仓库里执行git pull origin main操作。奇怪的是,像git status这类命令用subprocess调用都正常,但git pull就是跑不起来,完全没有输出,还会抛出错误:

[WinError 6] The handle is invalid

我最初的代码是这样的:

import subprocess

subprocess.check_output(
    ['git', 'pull', 'origin', 'main']
)

后来我尝试切换工作目录,不管是用os.chdir还是给subprocess传cwd参数,结果都不对:

import os
import subprocess

os.chdir(my_repository_dir)

subprocess.check_output(
    ['git', 'pull', 'origin', 'main'],
    cwd=my_repository_dir
)

我把subprocess的几个方法(check_output、check_call、run、Popen)都试了一遍,加shell=True和不加的情况也都测试过,全都没用。甚至还试了GitPython模块,依然解决不了问题。

补充几个关键信息:

  • 目标目录确实是有效的Git仓库
  • GitLab那边已经配置好了SSH密钥
  • Windows凭据管理器里也存储了对应的账号凭据

现在我有点懵,难道git pull本来就不适合从脚本里调用吗?如果是这样的话,有没有正确的方式在Python脚本里实现拉取仓库代码的操作?麻烦各位大佬指点迷津!

备注:内容来源于stack exchange,提问作者user19640837

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 11:17:58