2012-02-02 19 views
8

Mamy kilka własnych bibliotek, które odłączyliśmy (z kilku powodów, głównie administracyjnych lub z możliwością łatwego otwarcia ich później). Żyją w prywatnych repozytoriach Githuba, jeśli to ma znaczenie.Jak zainstalować wewnętrzne wymagania dla projektów Python Heroku?

Chciałbym wdrożyć aplikację na Heroku, aby ją przetestować. To zależy od jednej z tych bibliotek.

Mam określić moje zależności w pliku requirements.txt. Jest to łatwe do zainstalowania w PyPI, ale co mam zrobić z tymi wewnętrznymi zależnościami?

Mogę uruchomić własne prywatne lustro PyPI, które ma takie rzeczy, albo mogę użyć pakietów edytowalnych (mimo że dokumentacja mówi, że nie powinny być używane w produkcji).

Jaki jest odpowiedni sposób na zrobienie tego?

Odpowiedz

7

GitHub pozwala na podstawowe uwierzytelnianie HTTP w repozytoriach Git.

Tak, można dodać linię tak:

-e git+https://username:[email protected]/kennethreitz/[email protected]#egg=requests 

I wszystko będzie działać poprawnie :)

+0

Awesome! Dlaczego Heroku mówi, że nie powinieneś mieć plików -e w swoim pliku wymagań? Nie widzę problemu, gdy ręcznie określasz tag/release (lub masz proces rozwoju, który oznacza, że ​​master jest zawsze dobry). – lvh

+0

Ponieważ wymagania edytowalne mogą czasem ulec uszkodzeniu. Nie specyficzne dla heroku :) –

+3

Ale jak mam to zrobić bez podawania hasła? – wkschwartz

1

W można wymienić jak poniżej.

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

Tymczasem można sklonować bibliotekę i tworzenia wirtualnego środowiska i zainstalować wewnątrz ENV. Heroku dev center zawiera artykuły, w tym konfigurację wirtualnego env.

+0

Jak to pomaga w przypadku prywatnego repo? – lvh

+0

Jeśli to nie działa, możesz zainstalować ze źródła po uruchomieniu 'scp'. – Kracekumar

0

Możesz napisać, powiedz, "-e git + ssh: //[email protected]/PIL#egg=PIL" zamiast "PIL" w swoim pliku requirements.txt, a on pobierze go stamtąd .

Jednak wymagałoby to w jakiś sposób określenia klucza prywatnego ssh, który będzie używany przez heroku podczas ciągnięcia.

0

Jest buildpack dla właśnie tego: https://elements.heroku.com/buildpacks/debitoor/ssh-private-key-buildpack

Wykonaj:

$ 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)" 

Teraz dodaj podany klucz ssh do github i możesz użyć tych "git + git" @Github.com "zależności podczas wdrażania do Heroku.

Powiązane problemy