Instale commit git específico com pip


Respostas:


281

Você pode especificar o hash de confirmação, o nome do ramo, a marca.

Para o nome da ramificação e a tag, você também pode instalar uma distribuição compactada. Isso é mais rápido e mais eficiente, pois não requer clonagem de todo o repositório. O GitHub cria esses pacotes automaticamente.

cerquilha:

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

nome da filial

Com git

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

ou do pacote de origem

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

tag

com git

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

ou do pacote de origem

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

Esse recurso não está bem documentado, mas você pode encontrar mais informações em https://pip.pypa.io/en/latest/reference/pip_install.html#git


24
Ele irá adicionar esta mensagem divertida:Could not find a tag or branch '2927346f4c513a217ac8ad076e494dd1adbf70e1', assuming commit.
vlad-ardelean

10
@ vlad-ardelean alguma idéia de como dizer a pip IT É um commit? Isso está sendo produzido no meu script de implantação e não quero suprimir todo o stderr.
Leonardo Arroyo

Se você não especificar nada, qual é o comportamento?
Scott Stafford

@ ScottStafford Você não deve ter uma ramificação / tag chamada como uma mensagem de confirmação. Isso seria ... estranho.
Martin Thoma

Além disso, eu gostaria de mencionar uma versão HTTPS de git+comando: pip install git+https://github.com/gpoore/codebraid@011464539bfb09b8611c8aef0d543532cea958bf. Pode ser importante para pessoas por trás de proxies http corporativos.
grwlf 24/04

19

Um comentário extra à resposta de @ hugo-tavares:

Se for um repositório GitHub particular, você precisará usar:

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

No seu caso:

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

12

É possível instalar automaticamente um pacote python usando o arquivo requirements.txt em seu projeto, apenas adicionando a seguinte linha:

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

e execute a linha de comando:

$ pip install -r requirements.txt


15
Para mim (pip 9.0.1 em python3.5 virtualenv), não funcionou: pip install -r requirements.txtgerado 'Não foi possível detectar o nome do requisito, especifique um com # egg ='. Mas ele funcionou com o formato '-e git + github.com/owner/repository.git#egg=branch_or_commit '
Edouard Berthe

Você precisa usar esse formato dentro do arquivo requirements.txt. Você fez isso?
mannysz

Eu consegui funcionar, mas isso não está claro. Precisa ter "package_name -e ..." e não apenas "-e ..." no início da linha.
Udi

1

Se você deseja criar um pacote de ovos, ainda pode usar o mesmo apêndice @branch_or_commit: pip install git+ssh://git@github.com/myrepo.git@mybranch#egg=myeggscript

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.