Paketmanager für Projekte mit gemischten Sprachen

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

Hallo :)

Ich könnte mal einen Rat brauchen: Man hat eine größere Menge an einzelnen Skripten und Bibliotheken, die teilweise aber untereinander Abhängigkeiten haben oder gemeinsame Bibliotheken verwenden (z.B. python Code der Ruby oder so aufruft). Wenn das jetzt alles ausschließlich in Python (oder analog dazu ausschließlich in einer anderen Sprache) geschrieben wäre, wäre, denke ich, die saubere Lösung, einzelne, per pip installierbare Pakete daraus zu machen, und so die Abhängigkeiten sauber abzubilden und wartbar zu halten. Aber was macht man, wenn die Codebasis verschiedene Programmiersprachen enthält (z.B. 50% Python, 50% mehrere andere Sprachen). Ich stelle mir eine "Programmiersprachen-agnostische"-Paketverwaltung für so einen Zweck vor, habe aber keinen guten Ansatz gefunden. Gibt es Ideen dazu?
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

So einfe Frage ist ohne Angabe des OS auf dem das laufen soll immer etwas schwierig. Wenn's ein Linux ist, dann mit dessen Paketmanagement. Ggf. mehreren durch dependencies verknuepften. Aber ehrlich gesagt wuerde man das heute wohl eher mit Docker machen.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

Unter Windows geht das auch (bedingt) per Paketmanager. Ansonsten hast du da wohl Pech gehabt. ;)
Notfalls per Versionsverwaltung über Submodule?
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

Danke für die beiden Rückmeldungen. Das läuft (natürlich :) ) unter Linux. Das ganze liegt in einem gemeinsamen Git Repository und wird in einem Docker Container ausgeführt. Innerhalb des Containers werden die Pakete gebaut und dann per pip installiert (für den Nicht-Python-Code, der aber von Python benötigt wird, gibt es Dummy-Packages). Dennoch ist das eigentlich nicht das Level von Abstraktion und vor allem Flexiblität, das ich mir vorstelle. Pakete für das OS wären eine Option. Aber ich hätte gerne etwas dazwischen.
Zuletzt geändert von nezzcarth am Freitag 3. April 2020, 17:56, insgesamt 4-mal geändert.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Andere Werkzeuge sind Ansible/Chef/Puppet und Co. Mein Eindruck ist, dass man sich mit sowas eine reproduzierbare Umgebung herbeiskriptet, statt auf die doch recht starren Pakete zu setzen.
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

Das ist ein guter Hinweis. Ich hatte Ansible etc. eher unter Tools für das Provisioning und Warten von Systemen verbucht, aber vielleicht ist das hier tatsächlich auch ein Ansatz. Das schaue ich mir auf jeden Fall an. Zwischenfrage: Gibt es hier Erfahrungen mit poetry (statt pip) in so einem Kontext?
Antworten