我想在以下情况下使用GitPython:
我想使用便携式git,无论是否已经安装git(原因是此问题)。
我知道我可以通过设置GIT_PYTHON_GIT_EXECUTABLE
环境变量来指定git可执行文件,但是
除了手动编辑系统环境变量外,我没有找到一种在Windows上执行此操作的方法(setx
似乎做了一些操作,但env
之后未显示此类变量)。
这应该是最终用户程序,我无法发送“请设置环境变量”之类的指令。
仅在程序已经运行时才知道该路径。
所以我的问题是,如何在运行时手动设置可执行路径?以下内容似乎无效,它只能打印git
和我系统的git版本:
import os
import sys
# Download and extract a portable git
git_dir = r"C:\Users\Florian\Downloads\mingit-busybox\cmd"
git_bin = os.path.join(git_dir, "git")
os.putenv("GIT_PYTHON_GIT_EXECUTABLE", git_bin)
os.environ.putenv("GIT_PYTHON_GIT_EXECUTABLE", git_bin)
# Attempt with VonC's Answer, making sure that it is first in PATH
sys.path = [git_dir] + sys.path
os.pathsep.join([git_dir]) + os.pathsep + os.environ["PATH"]
# Only import git now, because that's when the path is checked!
import git
g = git.Git()
print(g.GIT_PYTHON_GIT_EXECUTABLE)
print(".".join([str(v) for v in g.version_info]))
❯ python .\gitpython_test.py
git
2.23.0 # My portable git version is 2.20.1
除了设置以外,请检查是否可以设置PATH。
请参阅“如何PATH=%PATH%
在Python脚本中设置为环境? ”
我们的目标是设置PATH
到C:\Users\Florian\Downloads\mingit-busybox\cmd;%PATH%
,这意味着git
从mingit-busybox
会来第一次。
这是一个最小的示例:
git_dir = r"C:\Users\Florian\Downloads\mingit-busybox\cmd"
# Make sure it's at the beginning of the PATH
os.environ["PATH"] = os.pathsep.join([git_dir]) + os.pathsep + os.environ["PATH"]
# NOW import it
import git
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句