Встановіть специфічний git комірок з допомогою pip


172

Я розробляю додаток джанго і використовую pip для управління своїми вимогами. Як я можу зробити, щоб встановити певний git?

У моєму випадку мені потрібно встановити цю комісію: https://github.com/aladagemre/django-notification/commit/2927346f4c513a217ac8ad076e494dd1adbf70e1

Відповіді:


281

Ви можете вказати хеш фіксації, ім'я гілки, тег.

Для назви гілки та тегу також можна встановити стислий дистрибутив. Це швидше та ефективніше, оскільки не потребує клонування всього сховища. GitHub створює ці пакети автоматично.

хеш:

$ pip install git+git://github.com/aladagemre/django-notification.git@2927346f4c513a217ac8ad076e494dd1adbf70e1

назва гілки

З git

$ pip install git+git://github.com/aladagemre/django-notification.git@cool-feature-branch

або з вихідного пакета

$ pip install https://github.com/aladagemre/django-notification/archive/cool-feature-branch.tar.gz

тег

з git

$ pip install git+git://github.com/aladagemre/django-notification.git@v2.1.0

або з вихідного пакета

$ pip install https://github.com/aladagemre/django-notification/archive/v2.1.0.tar.gz

Це не добре задокументована функція, але ви можете знайти більше інформації на https://pip.pypa.io/en/latest/reference/pip_install.html#git


24
Це додасть цього веселого повідомлення:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean

10
@ vlad-ardelean будь-яка ідея про те, як сказати pip IT IS фіксація? Це виходить з мого сценарію розгортання, і я не хочу придушувати всі більш жорсткі.
Леонардо Арройо

Якщо ви нічого не вказуєте, яка поведінка?
Скотт Стаффорд

@ScottStafford У вас не повинно бути гілки / тегу, який викликається як повідомлення про фіксацію. Це було б ... дивно.
Мартін Тома

Крім того , я хотів би згадати версію HTTPS з git+команди: pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf. Це може бути важливо для людей, що стоять за корпоративними http-проксі.
grwlf

19

Додатковий коментар до відповіді @ hugo-tavares:

Якщо це приватне сховище GitHub, вам потрібно буде використовувати:

pip install git+ssh://git@github.com/....

У вашому випадку:

pip install git+ssh://git@github.com/aladagemre/django-notification.git@2927346f4c513a217ac8ad076e494dd1adbf70e1

12

Можна автоматично встановити пакунок python, використовуючи файл requ.txt у проекті, просто додавши наступний рядок:

-e git+https://github.com/owner/repository.git@branch_or_commit

і запустіть командний рядок:

$ pip install -r requirements.txt


15
Для мене (pip 9.0.1 в python3.5 virtualenv) він не спрацював: pip install -r requirements.txtпідвищено 'Не вдалося виявити ім'я вимоги, вкажіть її з # egg ='. Але він працював у форматі '-e git + github.com/owner/repository.git#egg=branch_or_commit '
Едуард Берте

Потрібно використовувати цей формат всередині файла вимоги.txt. Ти це робив?
mannysz

Я працював, але це незрозуміло. На початку рядка потрібно мати "ім'я пакета -e ...", а не лише "-e ...".
Уді

1

Якщо ви хочете створити пакет для яєць, ви все одно можете використовувати той самий додаток @branch_or_commit: pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.