我在本地windows机器上创建的这个脚本工作正常。
import git
repo = C:/user/folder/repo
g = git.cmd.Git(repo)
g.execute("git config --get remote.origin.url")
但是如果我尝试在我们的unix服务器上运行它(如果我改变了repo目录),我会得到
File "/usr/local/lib/python3.6/site-packages/git/cmd.py", line 735, in execute
raise GitCommandNotFound(command, err) from err
git.exc.GitCommandNotFound: Cmd('git') not found due to: FileNotFoundError('[Errno 2] No such file or directory: 'git config --get remote.origin.url': 'git config --get remote.origin.url'')
基于gitPython文档
exceptiongit。exc.GitCommandNotFound(command,cause)如果在PATH或GIT_PYTHON_GIT_EXECUTABLE环境变量指定的路径中找不到git可执行文件,则抛出
所以我尝试将git添加到PATH。
vi ~/.bashrc
export GIT_PYTHON_GIT_EXECUTABLE=/usr/local/lib/python3.6/site-packages/git/__init__.py
export PATH=$PATH:$ORACLE_HOME:${LDCONFIG_HOME}:$GIT_PYTHON_GIT_EXECUTABLE
但还是不行
2条答案
按热度按时间1aaf6o9v1#
阅读文档时,execute似乎使用了
subprocess.Popen
,在这种情况下,它只是没有您的环境。你有几种方法来解决这个问题,要么使用env
关键字和包含PATH的字典,要么传递shell=True
(如果用户代码可以到达这里,这是危险的)所以要么这样做:
或
busg9geu2#
这些对我很有效。:-