Momentan jonglieren wir mit PYTHONPATH, um unsere gesamten Module zusammenzuführen. Das ist ein heilloses durcheinander und führt zu Fehlern und unnützer Fehlersuche. Ziel ist es, ein Workflow zu definieren, der einen einfachen Umgang mit Paketen erlaubt.
Ein Paketname ist notwendig, z.B. “shopupdate”. Namen sollten keine Sonderzeichen und/oder Trennzeichen enthalten. Das git muss dann einen Unterordner enthalten, der genau diesen Namen trägt. Bsp: “shopUpdate/shopupdate”, dort werden dann alle Ordner und *.py-Dateien eingebunden. Die Vorarbeit ist damit abgeschlossen.
Es wird eine “setup.py” benötigt, die die setuptools von Python anspringt:
from setuptools import setup PACKAGE = "shopupdate" setup(name=PACKAGE, version='0.1', description='Peng', author='picalieke', author_email='picalieke@localhost', zip_safe=False, packages=[PACKAGE])
Als sehr einfache Variante nutzen wir ein 2-Schritt-System.
<HTML><ol></HTML>
$ python setup.py sdist
, der wandert in das Verzeichnis dist$ python setup.py install –prefix=~/.local
<HTML></ol></HTML>Ab dann kann in python das Modul eingebunden werden, ohne das der PYTHONPATH angepasst werden muss.
from shopupdate.feed_parser import FeedParser
Konfiguration und Skripte sind nicht im Modul enthalten, da diese vertrauliche Daten und/oder dynamisches mit sich bringen. Im Fall von shopupdate, muss folgende Verzeichnisstruktur lokal angelegt werden:
shopUpdate scripts settings
in scripts landet das “Programm”, dass das Modul verwendet, ggf. ein Wrapper, der einfach die main() aus dem Modul aufruft, dann mit entsprechenden Pfaden für die Konfiguration. In settings liegen dann die Konfigurationsdateien, für die spezielle Maschine.
Das Setup ist ultra-minimal, d.h. nur ein Skelett, für die wichtigsten Funktionen. Der Rest, Doku einbinden, etc. sollte alles nach und nach hier dokumentiert werden.