Ich habe zwei Python-Projekte, die einige gemeinsame Bibliotheken teilen, die alle in drei Git-Repositories organisiert sind: project1, project2 und common-lib. Die beiden Projekte sind jeweils für den Einsatz in elastischem Bohnenranking vorgesehen, der mit common-lib gebündelt ist.
Ich versuche die idiomatische Methode zu finden, um diese Projekte zu strukturieren, um die Entwicklung für lokal zu erleichtern und um eine ZIP-Datei für die Bereitstellung mit eb Bereitstellung .
Alles für die lokale Entwicklung aufzustellen ist einfach. Überprüfe einfach jeden Repo und mache ein python setup.py develop
in common-lib, um die allgemeinen Bibliotheken im virtualenv verfügbar zu machen.
Für die EB-Bereitstellung wäre es schön, einen einzigen setup.py-Befehl zu haben, der eine EB-kompatible zip-Datei , die das Projekt und common-lib enthält, mit einer requirements.txt-Datei, die die Pip-Abhängigkeiten für beide auflistet. Ich habe noch keinen einfachen Weg gefunden, dies zu tun, was ein wenig überraschend ist, weil ich mir vorstelle, dass dies ein ziemlich häufiges Szenario ist.
Ich kann das git-Repository für common-lib weder in der Datei requirements.txt von project1 noch in project2 angeben, da das Repository von AWS aus nicht erreichbar ist.
Für mich wäre der richtige Weg, ein Python-Paket aus der allgemeinen Bibliothek zu erstellen und es auf einem privaten Pypi-Server wie Ссылка zu veröffentlichen . Habe es als Referenz in der requirements.txt als Python-Paket.
Eine andere Lösung kann darin bestehen, die common-lib als git-Submodul Ссылка einzuschließen. Damit haben Sie die Trennung, weil es in einem separaten Repository leben wird und Sie eine einfache Referenz als ein Git Submodul in Ihrem Projekt haben.
Tags und Links python amazon-web-services elastic-beanstalk