Eu instalei uma biblioteca usando o comando
pip install git+git://github.com/mozilla/elasticutils.git
que o instala diretamente de um repositório do Github. Isso funciona bem e eu quero ter essa dependência na minha requirements.txt
. Eu olhei para outros tickets como este, mas isso não resolveu o meu problema. Se eu colocar algo como
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
no requirements.txt
arquivo, pip install -r requirements.txt
resulta na seguinte saída:
Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20))
Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: )
No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20))
A documentação do arquivo de requisitos não menciona links usando o git+git
especificador de protocolo, portanto, talvez isso não seja suportado.
Alguém tem uma solução para o meu problema?
python
github
pip
requirements.txt
Alfe
fonte
fonte
git+git
variante (que funcionava). Nosrequirements.txt
seus versão funciona, então muito obrigado :)docs
link não estava funcionando para mim; Eu usei um mais velho .-e git+git://
vez de-e git://
? Eu recebi uma mensagem de erro "deve ser um caminho para um projeto local ou uma URL VCS começando com svn +, git +, hg + ou bzr +" .Normalmente, seu
requirements.txt
arquivo ficaria assim:Para especificar um repositório do Github, você não precisa do
package-name==
convenção.Os exemplos abaixo são atualizados
package-two
usando um repositório GitHub. O texto entre@
e#
denota as especificidades do pacote.Especifique o hash de confirmação (
41b95ec
no contexto de atualizadorequirements.txt
):Especifique o nome da filial (
master
):Especifique a tag (
0.1
):Especifique release (
3.7.1
):Observe que
#egg=package-two
não é um comentário aqui, é declarar explicitamente o nome do pacoteEsta postagem do blog tem mais algumas discussões sobre o tópico.
fonte
-e
opções de linha de comando ( ). Obrigado por mostrar uma mistura de ambos, para que eu possa colocar isso em contexto!3.7.1
comgit+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two
não funcionou para mim. O que funcionou para mim foigit+git://github.com/path/to/[email protected]#egg=package-two
.git+git://...
alguma forma, essa notação causou erros relativos ao ssh na minha caixa do Linux. Acabei trocando-os paragit+https://...
notação e eles funcionam perfeitamente.requirements.txt
permite as seguintes maneiras de especificar uma dependência em um pacote em um repositório git a partir do pip 7.0: 1Para o Github, isso significa que você pode fazer (observe o omitido
-e
):Por que a resposta extra?
Fiquei um pouco confuso com a
-e
bandeira nas outras respostas, então aqui está o meu esclarecimento:O
-e
ou--editable
os meios de bandeira de que o pacote é instalada dentro<venv path>/src/SomeProject
e, assim, não no profundamente enterrado<venv path>/lib/pythonX.X/site-packages/SomeProject
que de outra forma seriam colocados em. 2Documentação
fonte
-e
sua próximapip freeze
pode não dar os resultados corretos para este pacotePrimeiro, instale com
git+git
ougit+https
, da maneira que você souber. Exemplo de instalaçãokronok
do ramo dobrabeion
projeto:Segundo, use
pip freeze > requirements.txt
para obter a coisa certa no seurequirements.txt
. Nesse caso, você receberáTerceiro, teste o resultado:
fonte
no such option: -e
git+https
? No texto que você dizgit+git
e no código #git+https
Desde o pip
v1.5
(lançado em 1º de janeiro de 2014: CHANGELOG , PR ), você também pode especificar um subdiretório de um repositório git para conter seu módulo. A sintaxe é assim:Nota: Como autor do módulo pip, idealmente, você provavelmente desejaria publicar seu módulo em seu próprio repositório de nível superior, se puder. No entanto, esse recurso é útil para alguns repositórios preexistentes que contêm módulos python em subdiretórios. Você pode ser forçado a instalá-los dessa maneira, se eles também não forem publicados no pypi.
fonte
Estou descobrindo que é meio complicado conseguir que o pip3 (v9.0.1, instalado pelo gerenciador de pacotes do Ubuntu 18.04) realmente instale o que eu digo para instalar. Estou postando esta resposta para economizar tempo de qualquer um que tenha esse problema.
Colocar isso em um arquivo requirements.txt falhou:
Por "falha", quero dizer que, enquanto ele baixava o código do Git, acabou instalando a versão original do código, como encontrada no PyPi, em vez do código no repositório nesse ramo.
No entanto, a instalação do commit em vez do nome da filial funciona:
fonte