установка pip из ветки git repo

526

Попытка pip установить репо конкретной отрасли. Google говорит мне

pip install git+ https://github.com/user/repo.git@branch

Название ветки - issue/34/oscar-0.6 поэтому я pip install https://github.com/tangentlabs/django-oscar-paypal.git@/issue/34/oscar-0.6 но он вернул 404.

Как мне установить эту ветку?

Теги:
pip

4 ответа

665
Лучший ответ

Подготовить префикс URL git+ (см. Поддержка VCS):

pip install git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6

И укажите имя ветки без ведущего /.

  • 4
    Обязательно ли указывать ветку или коммит @ ?
  • 6
    @eugene, нет, @ и запчасти после этого не обязательны.
Показать ещё 11 комментариев
230

Использование pip с git + для клонирования репозитория может быть очень медленным (например, с помощью https://github.com/django/django@stable/1.6.x, это займет несколько минут). Самая быстрая вещь, которую я нашел, которая работает с GitHub и BitBucket, заключается в следующем:

pip install https://github.com/user/repository/archive/branch.zip

который становится для ведущего django:

pip install https://github.com/django/django/archive/master.zip

для устойчивости django/1.7.x:

pip install https://github.com/django/django/archive/stable/1.7.x.zip

С BitBucket это примерно такой же предсказуемый шаблон:

pip install https://bitbucket.org/izi/django-admin-tools/get/default.zip

Здесь главная ветка обычно называется по умолчанию. Это сделает вашу установку требований .txt намного быстрее.

В некоторых других ответах указываются варианты, необходимые при установке пакета в ваш requirements.txt. Обратите внимание, что с этим синтаксисом в архиве не требуются ведущие -e и trailing #egg=blah-blah, и вы можете просто вставить URL-адрес, поэтому ваш файл требований .txt выглядит так:

https://github.com/user/repository/archive/branch.zip
  • 24
    Примечание. Начиная с версии Django 1.9, Django поставляется с файлом с именем в формате Unicode . Застежка-молния, используемая в этом случае. Простой обходной путь - заменить .zip на .tar.gz , так как работает экстрактор смолы.
  • 4
    Интересно, может ли pip передать --depth 0 при клонировании, чтобы сделать его более эффективным (вся история git не нужна для установки снимка для pip). git-scm.com/docs/git-clone
Показать ещё 6 комментариев
39

Просто добавьте лишний, если вы хотите установить его в файл pip, его можно добавить следующим образом:

-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal

Он будет сохранен как яйцо, хотя.

  • 3
    Лучше использовать его без -e . См .: stackoverflow.com/a/34518202/451710
  • 3
    Спасибо за комментарий, очень интересно. Я думаю, что люди склонны использовать флаг -e чтобы избежать любого возможного конфликта с уже существующим пакетом. Я думаю, это вопрос выбора
Показать ещё 3 комментария
26

Инструкции по установке из частного репозитория с использованием учетных данных ssh.

Для использования:

$ pip install git+ssh://[email protected]/myuser/foo.git@my_version

Для развития:

$ git clone [email protected]/myuser/foo.git@my_version
$ pip install --editable ./

Ещё вопросы

Сообщество Overcoder
Наверх
Меню