J'ai installé une bibliothèque en utilisant la commande
pip install git+git://github.com/mozilla/elasticutils.git
qui l'installe directement à partir d'un référentiel Github. Cela fonctionne bien et je veux avoir cette dépendance dans mon requirements.txt
. J'ai regardé d'autres billets comme celui-ci mais cela n'a pas résolu mon problème. Si je mets quelque chose comme
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
dans le requirements.txt
fichier, a pip install -r requirements.txt
donne la sortie suivante:
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))
La documentation du fichier d'exigences ne mentionne pas les liens utilisant le git+git
spécificateur de protocole, donc ce n'est peut-être tout simplement pas pris en charge.
Quelqu'un a-t-il une solution à mon problème?
git+git
variante (qui fonctionnait). Dansrequirements.txt
votre version fonctionne, merci beaucoup :)docs
lien ne fonctionnait pas pour moi; J'en ai utilisé un plus ancien .-e git+git://
lieu de-e git://
? J'ai reçu un message d'erreur "devrait être soit un chemin vers un projet local ou une URL VCS commençant par svn +, git +, hg + ou bzr +" .Normalement, votre
requirements.txt
fichier ressemblerait à ceci:Pour spécifier un dépôt Github, vous n'avez pas besoin de la
package-name==
convention.Les exemples ci-dessous mettent
package-two
à jour à l' aide d'un dépôt GitHub. Le texte entre@
et#
indique les spécificités du package.Spécifiez le hachage de validation (
41b95ec
dans le contexte de la mise à jourrequirements.txt
):Spécifiez le nom de la branche (
master
):Spécifiez la balise (
0.1
):Spécifiez la version (
3.7.1
):Notez que ce
#egg=package-two
n'est pas un commentaire ici, c'est pour indiquer explicitement le nom du packageCe billet de blog a plus de discussion sur le sujet.
la source
-e
options de ligne de commande ( ). Merci d'avoir montré un mélange des deux afin que je puisse mettre cela en contexte!3.7.1
avecgit+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two
n'a pas fonctionné pour moi. Ce qui a fonctionné pour moi, c'estgit+git://github.com/path/to/[email protected]#egg=package-two
.git+git://...
notations ont provoqué en quelque sorte des erreurs relatives à ssh sur ma boîte Linux. J'ai donc fini par les passer à lagit+https://...
notation, puis ils fonctionnent parfaitement.requirements.txt
permet les façons suivantes de spécifier une dépendance sur un paquet dans un référentiel git à partir de pip 7.0: 1Pour Github, cela signifie que vous pouvez le faire (remarquez l'omis
-e
):Pourquoi la réponse supplémentaire?
J'ai été quelque peu confus par le
-e
drapeau dans les autres réponses, alors voici ma clarification:Le drapeau
-e
ou--editable
signifie que le paquet est installé dans<venv path>/src/SomeProject
et donc pas dans le profond enfoui où<venv path>/lib/pythonX.X/site-packages/SomeProject
il serait autrement placé. 2Documentation
la source
-e
suivant,pip freeze
vous risquez de ne pas donner les résultats corrects pour ce packageTout d'abord, installez avec
git+git
ougit+https
, comme vous le savez. Exemple d'installation dekronok
la branche dubrabeion
projet:Deuxièmement, utilisez
pip freeze > requirements.txt
pour obtenir la bonne chose dans votrerequirements.txt
. Dans ce cas, vous obtiendrezTroisièmement, testez le résultat:
la source
no such option: -e
git+https
? Dans le texte que vous ditesgit+git
et dans le codegit+https
Depuis pip
v1.5
, (publié le 1er janvier 2014: CHANGELOG , PR ), vous pouvez également spécifier un sous-répertoire d'un dépôt git pour contenir votre module. La syntaxe ressemble à ceci:Remarque: En tant qu'auteur de module pip, idéalement, vous voudrez probablement publier votre module dans son propre référentiel de niveau supérieur si vous le pouvez. Pourtant, cette fonctionnalité est utile pour certains dépôts préexistants qui contiennent des modules python dans des sous-répertoires. Vous pourriez être obligé de les installer de cette façon s'ils ne sont pas publiés sur pypi également.
la source
Je trouve qu'il est assez difficile d'obtenir pip3 (v9.0.1, tel qu'installé par le gestionnaire de paquets d'Ubuntu 18.04) pour installer réellement la chose que je lui dis d'installer. Je poste cette réponse pour gagner du temps à tous ceux qui rencontrent ce problème.
Échec de la mise dans un fichier requirements.txt:
Par "échoué", je veux dire que bien qu'il ait téléchargé le code depuis Git, il a fini par installer la version originale du code, comme on le trouve sur PyPi, au lieu du code dans le dépôt sur cette branche.
Cependant, l'installation du commmit au lieu du nom de la branche fonctionne:
la source