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/[email protected]

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

Hugo Tavares
fonte
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://[email protected]/....

No seu caso:

pip install git+ssh://[email protected]/aladagemre/django-notification.git@2927346f4c513a217ac8ad076e494dd1adbf70e1
PGuiv
fonte
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

mannysz
fonte
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://[email protected]/myrepo.git@mybranch#egg=myeggscript

Dannid
fonte