NonePip install gitpython завершается неудачно с требованием python 3.x

Когда я пытаюсь установить gitpython через pip обычно под python 2.7, он не дает понять, что требуется 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 или новее указан как требование. Что мне не хватает?

1 ответ

Решение

Оказывается, документация отстала, а поддержка Python 2.7 была прервана в dac619e.

Предполагая, что другие люди откладывают, как и я при переходе на Python 3, я создал форк GitPython, который актуален в версии 2.1.12 и отменяет только те изменения, которые устраняют заявленную совместимость для Python 2.7. Ожидается, что мой форк останется статичным с выпуском 0.2.12a, а в остальном даже с основной версией GitPython 2.1.12.

Я создал небольшой пакетный файл для людей, которые могут / должны захотеть автоматизировать процесс установки этого форка:

#!/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

Установленный таким образом, он все еще может управляться с помощью пипса, идущего вперед.

Другие вопросы по тегам