Ich schreibe Tonnen von Python-Skripten, und ich merke, dass ich viel Code wiederverwende, den ich für andere Projekte geschrieben habe. Meine Lösung bestand darin, sicherzustellen, dass der Code in logische Module / Pakete aufgeteilt ist (dieses ist gegeben). Ich mache sie dann setuptools-aware und veröffentliche sie auf PyPI. Das erlaubt meinen anderen Skripten, immer den aktuellsten Code zu haben, ich bekomme ein warmes, verschwommenes Gefühl, weil ich mich nicht wiederhole, und meine Entwicklung wird im Allgemeinen weniger kompliziert gemacht. Ich fühle mich auch gut, dass es da draußen jemanden gibt, der meinen Code für etwas nützlich findet, an dem er arbeitet, aber es ist hauptsächlich aus egoistischen Gründen:)
Wie gehst du mit allen Pythonisten um? Verwenden Sie PyPI oder setuptools (easy_install)? oder etwas anderes?
Ich habe dasselbe gemacht. Extrahieren Sie gängige Funktionen, erstellen Sie den Code mit zusätzlicher Dokumentation und Komponententests / doctests, erstellen Sie eine easy_install setup.py und veröffentlichen Sie sie dann auf PyPi. Vor kurzem habe ich eine einzelne Google Code-Website erstellt, in der ich die Quelle verwalte und das Wiki auf dem neuesten Stand halte.
Über welche Art von Modulen reden wir hier? Wenn Sie planen, Ihre Projekte an andere Python-Entwickler zu verteilen, ist setsetools großartig. Aber es ist normalerweise keine sehr gute Möglichkeit, Apps an Endbenutzer zu verteilen. Im letzteren Fall ist es am besten, wenn Sie Ihre Verpackung an die Plattformen anpassen, für die Sie sie vertreiben. Sicher, es ist ein Schmerz, aber es macht Leben für die Endbenutzer viel einfacher.
Zum Beispiel verwende ich in meinem Debian-System normalerweise nicht easy_install, weil es ein bisschen schwieriger ist, Eier zu bekommen, um mit dem Paketmanager gut zu funktionieren. In OS X und Windows möchten Sie wahrscheinlich alles mit py2app und py2exe verpacken. Dies macht das Leben für den Endverbraucher besser. Schließlich sollten sie nicht wissen oder sich darum kümmern, in welcher Sprache Ihre Skripte geschrieben sind. Sie brauchen nur sie zu installieren.
Ich speichere alles offline in einer logischen Verzeichnisstruktur, wobei häufig verwendete Module als Dienstprogramme gruppiert sind. Das bedeutet, dass es einfacher ist, zu steuern, welche Versionen ich veröffentliche und verwalte. Ich automatisiere auch den Build-Prozess, um die logische Verzeichnisstruktur zu interpretieren.
Tags und Links python code-reuse