Установка Pip из Github не работает после обновления политики ключей Github

Обычно я устанавливаю репозиторий Python из Github, используя (например):

pip install git+git://github.com/Artory/drf-hal-json@master

И, соответственно, где-то в моем файле «requirements.txt» есть git+git://github.com/Artory/drf-hal-json@master.

Сегодня это не удалось. Полная трассировка приведена ниже, но соответствующая часть:

The unauthenticated git protocol on port 9418 is no longer supported.

Спасибо Майкрософт. Трассировка указывает на эта ссылка об обновлении. Большая часть страницы по ссылке говорит о том, что обновление вряд ли затронет многих людей (еще раз спасибо Microsoft), а остальная часть связана с криптографией, которую я слишком нуб, чтобы понять. Раздел под названием «git://» просто гласит:

On the Git protocol side, unencrypted git:// offers no integrity or authentication, making it subject to tampering. We expect very few people are still using this protocol, especially given that you can’t push (it’s read-only on GitHub). We’ll be disabling support for this protocol.

Это не помогает мне понять, как обновить мой файл requirements.txt, чтобы он снова заработал. Можете ли вы сказать мне, как обновить мои требования. txt, чтобы он снова работал? Полная трассировка ниже:

(venv) neil~/Documents/Code/web_app$ pip install git+git://github.com/Artory/drf-hal-json@master
Collecting git+git://github.com/Artory/drf-hal-json@master
  Cloning git://github.com/Artory/drf-hal-json (to revision master) to /tmp/pip-req-build-zowfe130
  Running command git clone -q git://github.com/Artory/drf-hal-json /tmp/pip-req-build-zowfe130
  fatal: remote error:
    The unauthenticated git protocol on port 9418 is no longer supported.
  Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
WARNING: Discarding git+git://github.com/Artory/drf-hal-json@master. Command errored out with exit status 128: git clone -q git://github.com/Artory/drf-hal-json /tmp/pip-req-build-zowfe130 Check the logs for full command output.
ERROR: Command errored out with exit status 128: git clone -q git://github.com/Artory/drf-hal-json /tmp/pip-req-build-zowfe130 Check the logs for full command output.
WARNING: You are using pip version 21.2.4; however, version 22.0.4 is available.
You should consider upgrading via the '/home/neil/Documents/Code/web_app/venv/bin/python -m pip install --upgrade pip' command.

Ну почему бы просто не установить его из pypi, что все равно безопаснее?

DeepSpace 16.03.2022 22:42

@DeepSpace, потому что это не тот репозиторий. Это другая вилка.

Neil 16.03.2022 22:48

Тем более это был просто пример. У меня установлено несколько других, которые не все были опубликованы в pypi.

Neil 16.03.2022 22:51
stackoverflow.com/a/70667683/7976758 Найдено в stackoverflow.com/…
phd 16.03.2022 23:54
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
4
414
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В URL-адресе, который вы даете pip, git+git говорит о доступе к репозиторию Git (первый git) по протоколу git без аутентификации (второй git). Предполагая, что вы хотите и дальше использовать здесь анонимный доступ, вы можете просто переписать команду, чтобы вместо этого использовать git+https, которая получает доступ к репозиторию Git по защищенному протоколу HTTPS.

Таким образом, ваша команда будет выглядеть так:

$ pip install git+https://github.com/Artory/drf-hal-json@master

Я только что проверил на виртуальной машине, и это работает. Если у вас есть другие такие URL-адреса, изменение таким же образом должно быть эффективным.

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