Могу ли я заставить pip сделать мелкую проверку при установке из git? - PullRequest
0 голосов
/ 25 октября 2018

Следующая команда устанавливает пакет Python из репозитория git:

$ pip install git+ssh://git@github.com/username/repo.git
Collecting git+ssh://git@github.com/username/repo.git
  Cloning ssh://git@github.com/username/repo.git to /tmp/pip-req-build-8s4nci15

Я не уверен на 100%, но, поскольку это занимает довольно много времени, я предполагаю, что он клонирует каждый коммит.Но для установки мне нужен только самый последний.

Вместо этого я бы хотел мелкий клон (с --depth 1).Это возможно?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

В дополнение к обходным путям (таким как ZIP), которые могут быть доступны в зависимости от хостинга, универсальным обходным решением git будет предварительное создание мелкого клона, а затем (поскольку ваш клон сам является git-репо) точкойPIP к клону.

Это не идеально (следовательно, «обходной путь»), так как для автоматизированного случая вам потребуется создать сценарий создания мелкого клона (ов) перед вызовом PIP, иданные, которые вы предоставляете PIP, будут содержать URL-адреса клонов вместо канонических URL-адресов для соответствующих пакетов.

Кроме того, по причинам, указанным в обсуждении PIP 'deep = 1', он может не работатьдля вас, в зависимости от того, какие инструменты вы (или ваши зависимости) используете.Кажется, git describe является сутью проблемы (или, по крайней мере, одной общей проблемы);так что вы можете использовать тег для одного коммита, который вы храните локально, в качестве дополнительного обходного пути.

0 голосов
/ 25 октября 2018

Добавление --depth 1 к команде git clone уже обсуждалось на длину и в настоящее время отклонено сопровождающими pip.Похоже, что это более сложная проблема, чем можно было бы ожидать , особенно потому, что она сломала бы setuptools_scm, что широко используется.

Как сказал Клаус в комментариях, вы можете избежатьиздержки git clone путем указания на файл удаленного архива вместо использования URL-адреса Git:

pip install http://my.package.repo/SomePackage-1.0.4.zip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...