添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
多情的圣诞树  ·  String.prototype.toLow ...·  8 月前    · 
傻傻的课本  ·  Eclipse 快捷键 | 菜鸟教程·  1 年前    · 
千杯不醉的人字拖  ·  Rate limits | GitLab·  1 年前    · 

subprocess.check_call。命令'['git', 'clone']'返回非零退出状态 127

1 人关注

我在做一个微服务,为一个用户写了以下脚本,该用户想 ssh 进入一个远程环境并 git clone 一个repo。我已经为环境指定了 GIT_SSH GIT_PYTHON_GIT_EXECUTABLE ,然后运行 git clone

def clone_if_local_repo_absent(local_repo_path, remote_repo_url):
    GIT_SSH = '...'
    GIT_PYTHON_GIT_EXECUTABLE = '/usr/bin/git'
    my_env = os.environ.copy()
    my_env["GIT_SSH"] = GIT_SSH
    my_env["GIT_PYTHON_GIT_EXECUTABLE"] = GIT_PYTHON_GIT_EXECUTABLE
    # Clones to directory specified
    exe_command = shlex.split('git clone {remote_repo_url} {repo_name}'.format(remote_repo_url=remote_repo_url, repo_name=local_repo_path))
    subprocess.check_call(exe_command, env=my_env, shell=True)

在运行该脚本时,我得到了错误。【替换代码6 我怎样才能解决这个错误呢?

4 个评论
Why don't you use something like gitpython ?
Why str.format and shlex.split instead of simply check_call(['git', 'clone', remote_repo_url, local_repo_path], ...) ?
关于这个错误--这意味着git失败了。你有没有从控制台尝试 git clone remote_repo_url LOCAL ,看看git抱怨的是什么?
我不能使用gitpython,因为它没有安装在远程环境中。Git也没有安装在远程环境中。所以我试图在 subprocess call 中把GIT_SSH传给 git clone 命令。然而, git clone 仍然无法执行,因为它显示退出状态127
python
git
ssh
subprocess
clone
Asmita Poddar
Asmita Poddar
发布于 2021-01-19
1 个回答
VonC
VonC
发布于 2021-01-25
已采纳
0 人赞同

正如在 Git ProBook :

如果指定了 GIT_SSH ,那么当Git试图连接到SSH主机时,会调用一个程序来代替 ssh
It is invoked like $GIT_SSH [username@]host [-p <port>] <command> .