0

当我尝试在 python 2.7 下通常通过 pip 安装 gitpython 时,它无法告诉我需要 python 3.x。

这个特定的脚本/过程一直工作到今天早上。

 $ sudo pip install gitpython
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting gitpython
  Using cached https://www.piwheels.org/simple/gitpython/GitPython-2.1.12-py2.py3-none-any.whl
GitPython requires Python '>=3.0, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*' but the running Python is 2.7.16

我正在运行 Python 2.7.16

$ python --version
Python 2.7.16

当我查看当前文档时,我看到 Python 2.7 或更新版本被列为要求。我错过了什么?

4

1 回答 1

2

结果证明文档滞后,并且在dac619e中放弃了对 Python 2.7 的支持。

假设其他人在我进入 Python 3 时一直在拖延,我创建了 GitPython 的一个分支,它是 2.1.12 的最新版本,并且只恢复那些消除了与 Python 2.7 的既定兼容性的更改。我的 fork 预计在 0.2.12a 版本中保持不变,否则即使在主线GitPython 2.1.12中也是如此。

我为可能想要/需要自动化此 fork 安装过程的人们创建了一个小批处理文件:

#!/bin/bash

gitpython() {
    local cwd repo pipList found
    pipList=$(pip list)
    found=$(grep -o "GitPython" <<< "$pipList" | wc -l)
    repo="https://github.com/lbussy/GitPython.git"
    if [ "$found" -eq "0" ]; then
        echo -e "\nDownloading and installing GitPython for Python 2.7."
        cwd=$(pwd)
        git clone "$repo" "$HOME/git-python" &>/dev/null || die "$@"
        cd "$HOME/git-python" || die "$@"
        eval "python setup.py install" &>/dev/null || die "$@"
        cd "$cwd" || die "$@"
        rm -fr "$HOME/git-python"
        echo -e "\nGitPython for Python 2.7 install complete."
    else
        echo -e "\nGitPython for Python 2.7 already installed."
    fi
}

function die
{
    local message=$1
    [ -z "$message" ] && message="Died"
    echo "${BASH_SOURCE[1]}: line ${BASH_LINENO[0]}: ${FUNCNAME[1]}: $message." >&2
    exit 1
}

main() {
    gitpython "$@"
}

main "$?" && exit 0

以这种方式安装,它仍然可以通过 pip 进行管理。

于 2019-07-21T23:54:26.370 回答