Можно ли использовать pip для установки пакета из частного репозитория GitHub? - PullRequest
293 голосов
/ 28 января 2011

Как следует из названия, я пытаюсь установить пакет Python из частного репозитория GitHub. Для публичного репозитория я могу выполнить следующую команду, которая отлично работает:

pip install git+git://github.com/django/django.git

Однако, если я попробую это для частного хранилища:

pip install git+git://github.com/echweb/echweb-utils.git

Я получаю следующий вывод:

Downloading/unpacking git+git://github.com/echweb/echweb-utils.git
Cloning Git repository git://github.com/echweb/echweb-utils.git to /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-VRsIoo-build
Complete output from command /usr/local/bin/git clone git://github.com/echweb/echweb-utils.git /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-VRsIoo-build:
fatal: The remote end hung up unexpectedly

Cloning into /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-VRsIoo-build...

----------------------------------------
Command /usr/local/bin/git clone git://github.com/echweb/echweb-utils.git /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-VRsIoo-build failed with error code 128

Полагаю, это потому, что я пытаюсь получить доступ к частному хранилищу без какой-либо аутентификации. Поэтому я попытался использовать Git + ssh, надеясь, что pip использует мой открытый ключ SSH для аутентификации:

pip install git+ssh://github.com/echweb/echweb-utils.git

Это дает следующий вывод:

Downloading/unpacking git+ssh://github.com/echweb/echweb-utils.git
Cloning Git repository ssh://github.com/echweb/echweb-utils.git to /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-DQB8s4-build
Complete output from command /usr/local/bin/git clone ssh://github.com/echweb/echweb-utils.git /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-DQB8s4-build:
Cloning into /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-DQB8s4-build...

Permission denied (publickey).

fatal: The remote end hung up unexpectedly

----------------------------------------
Command /usr/local/bin/git clone ssh://github.com/echweb/echweb-utils.git /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-DQB8s4-build failed with error code 128

Возможно ли то, что я пытаюсь достичь, возможно? Если да, то как я могу это сделать?

Ответы [ 14 ]

0 голосов
/ 19 июля 2018

Если вы не хотите использовать ssh, вы можете добавить имя пользователя и пароль в https url.
Приведенный ниже код предполагает, что у вас есть файл с именем «pass» в рабочем каталоге, содержащий ваш пароль.

export PASS=$(cat pass)    
pip install git+https://<username>:$PASS@github.com/echweb/echweb-utils.git
0 голосов
/ 24 мая 2018

Если у вас есть собственная библиотека / пакет на github / gitlab и т. Д., Вам нужно добавить тег для фиксации с конкретной версией библиотеки, например v2.0, тогда вы можете установить свой пакет

pip install git+ssh://link/name/repo.git@v2.0

Это работаетдля меня.Другие решения не сработали для меня.

0 голосов
/ 05 марта 2018

вы можете попробовать

pip install git+git@gitlab.mycorp.com/my_name/my_repo.git

без SSH: ... Это работа для меня.

0 голосов
/ 12 января 2015

решение oxyum подходит для этого ответа, я просто хочу отметить, что вы должны быть осторожны, если вы устанавливаете с использованием sudo, так как ключи должны храниться и для root (например, /root/.ssh).

Тогда вы можете набрать

sudo pip install git+ssh://git@github.com/echweb/echweb-utils.git

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...