Installer un commit git spécifique avec pip


Réponses:


281

Vous pouvez spécifier le hachage de validation, le nom de la branche, la balise.

Pour le nom de la branche et la balise, vous pouvez également installer une distribution compressée. Ceci est plus rapide et plus efficace, car il ne nécessite pas de clonage de l'ensemble du référentiel. GitHub crée ces bundles automatiquement.

hacher:

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

Nom de la filiale

Avec git

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

ou à partir du bundle source

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

marque

avec git

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

ou à partir du bundle source

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

Ce n'est pas une fonctionnalité bien documentée, mais vous pouvez trouver plus d'informations sur https://pip.pypa.io/en/latest/reference/pip_install.html#git


24
Il ajoutera ce message amusant:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean

10
@ vlad-ardelean une idée sur la façon de dire à pip C'EST un commit? Ceci est généré sur mon script de déploiement et je ne veux pas supprimer tous les stderr.
Leonardo Arroyo

Si vous ne spécifiez rien, quel est le comportement?
Scott Stafford

@ScottStafford Vous ne devriez pas avoir de branche / balise qui s'appelle comme un message de validation. Ce serait ... étrange.
Martin Thoma

En outre , je voudrais mentionner une version HTTPS de git+commande: pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf. Cela peut être important pour les personnes derrière des proxys http d'entreprise.
grwlf

19

Un commentaire supplémentaire à la réponse de @ hugo-tavares:

S'il s'agit d'un référentiel GitHub privé, vous devrez utiliser:

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

Dans ton cas:

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

12

Il est possible d'installer automatiquement un package python à l'aide du fichier requirements.txt sur votre projet en ajoutant simplement la ligne suivante:

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

et exécutez la ligne de commande:

$ pip install -r requirements.txt


15
Pour moi (pip 9.0.1 dans python3.5 virtualenv) cela n'a pas fonctionné: pip install -r requirements.txtsoulevé 'Impossible de détecter le nom de l'exigence, veuillez en spécifier un avec # egg ='. Mais cela a fonctionné avec le format '-e git + github.com/owner/repository.git#egg=branch_or_commit '
Edouard Berthe

Vous devez utiliser ce format dans le fichier requirements.txt. As-tu fais ça?
mannysz

Je l'ai fait fonctionner mais ce n'est pas clair. Il faut avoir "nom_package -e ..." et pas seulement "-e ..." au début de la ligne.
Udi

1

Si vous souhaitez créer un paquet d'oeufs, vous pouvez toujours utiliser le même appendice @branch_or_commit: pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.