9
votes

Comment installer des exigences internes pour les projets Python Heroku?

Nous avons quelques bibliothèques internes que nous avons divisées (pour plusieurs raisons, principalement administratives ou pour avoir la possibilité de les ouvrir facilement ultérieurement). Ils vivent dans des référentiels privés GitHub, si cela importe.

J'aimerais déployer une application à Heroku pour l'essayer. Cela dépend de l'une de ces bibliothèques.

Je suis censé spécifier mes dépendances dans les exigences.txt. C'est facile pour les trucs pypi-installables, mais que dois-je faire pour ces dépendances internes?

Je pourrais être soit dirigé mon propre miroir pypi privé qui a ce genre de choses, ou je pourrais utiliser des packages modifiables (même si la documentation dit qu'ils ne devraient pas être utilisées dans la production).

Quel est le moyen approprié de le faire?


0 commentaires

4 Réponses :


1
votes

dans exigences.txt Vous pouvez mentionner comme ce qui suit.

git + git: //github.com/kracekumar/blaze.git

Entre-temps, vous pouvez cloner la bibliothèque et créer un environnement virtuel et installer à l'intérieur de l'env. Heroku device a des articles, y compris Virtual env Configuration.


2 commentaires

Comment cela aide-t-il pour un repo privé, cependant?


Si cela ne fonctionne pas, vous pouvez l'installer à partir de la source après avoir exécuté SCP .



0
votes

Vous pouvez écrire, disons, "-e git + ssh: //git@..../pil#egg=pil" au lieu de "PIL" dans votre configuration requise.txt et ça va le chercher à partir de là.

Cependant, cela vous obligerait à spécifier la clé privée SSH à utiliser par Heroku lors de la tirage.


0 commentaires

7
votes

GitHub permet une authentification de base HTTP sur les repos git.

Donc, vous pouvez ajouter une ligne comme celle-ci: xxx

et tout fonctionnera correctement :)


4 commentaires

Impressionnant! Pourquoi Heroku dit-il que vous ne devriez pas avoir -e dans votre dossier de vos exigences cependant? Je ne vois pas le problème lorsque vous spécifiez manuellement une balise / libération (ou si vous avez un processus de développement qui signifie maître est toujours bon à partir).


Parce que les exigences modifiables peuvent se casser parfois. Pas spécifique à l'heroku :)


Mais comment puis-je faire cela sans vous engager mon mot de passe?


Cela semble violer la règle habituelle de «contraintes de Secrets». :)



0
votes

Il y a un buildpack pour juste ceci: HTTPS: // éléments .heroku.com / Buildpacks / Débitor / SSH-Private-Key-Buildpack

Faites ceci: P>

$ heroku buildpacks:set --index 1 https://github.com/debitoor/ssh-private-key-buildpack.git
$ heroku buildpacks:add heroku/python
$ heroku config:set SSH_KEY="$(cat path/to/your/keys/id_rsa | base64)"


0 commentaires