Projekt Umsetzung Fragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ScooB
User
Beiträge: 54
Registriert: Donnerstag 28. April 2011, 10:47

Hallo erst mal

ich bin ganz neu in der Welt von Python

ich habe ein Projekt zu verwirklichen und wollte nun noch eine Infos zu Python einholen.

Und zwar hat meine Projekt folgende Anforderungen
-GUI
-Datenbankanbindung
-Word (*.docx) und PDF ausgabe
-Es muss als exe laufen da es auf Windows ohne Python laufen soll

Zwecks GUI habe ich schon mal in Qt reingeschaust
Für docx https://github.com/mikemaccana/python-docx
Für PDF pyPDF
Für EXE py2exe
welche alternativen würdet ihr mir noch empfehlen bzw welche Vor und Nachteile haben diese

die Anwendung wird mit Python 2.6.6 erstellt

Gruß
Adrian

Danke im vorraus
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Bis jetzt sieht sieht deine Auswahl recht glücklich aus. Als pdf-Bibliothek würde ich dir eher ReportLab empfehlen. Qt (als PyQt oder PySide) ist definitiv eine gute Wahl für GUI-Geschichten. Bei der Datenbankanbindung hängt es stark davon ab was du vorhast. Im einfachsten Falle reichen das sqlite3-Modul aus der Standard-Bibliothek oder die Datenbank-Sachen die mit Qt kommen.
BlackJack

@ScooB: Bei den Qt-Anbindungen musst Du vielleicht ein wenig auf die Lizenz achten -- PyQt ist GPL oder kostenpflichtig für nicht-GPL und PySide ist LGPL.

Die Datenbank-API von Qt bietet auch Modellklassen, da sollte man also auf jeden Fall einmal hineinschauen wenn man Qt für die GUI verwendet. Allerdings müsste man bei PySide schauen ob die Unterstützung für das gewünschte Backend verfügbar ist. Ansonsten wäre ein "object relational mapper" (ORM) wie SQLAlchemy oder das darauf aufbauende Elixir einen Blick wert.

Die EXE-Anforderung würde ich auf "einfach installier- und aufrufbar" runter schrauben.
ScooB
User
Beiträge: 54
Registriert: Donnerstag 28. April 2011, 10:47

Also es wird eine Sqlite Datenbank da die Anwendung Online/Offline verfügbar sein soll es wird immer beim Starten geprüft od beine neue Version verfügbar ist und diese wird dann automatisch geladen

@BlackJack wie meinst du das mit den EXE-Anforderungen

Danke für die schnelle Antwort
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Ich denke er meint, dass man auf Tools wie py2exe verzichten kann und einfach den Python-Interpreter mitliefert. Über eine Batch-Datei o.Ä. wird das dann gestartet. Wenn man die unnötigen Sachen rauslöscht bekommt man den gesamten Interpreter unter 10MB.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Statt abgespecktem Interpreter könnte man auch einfach in Hinblick auf mögliche andere Python-Programme prüfen, ob schon ein Interpreter in der passenden Version installiert ist und entsprechend entscheiden, ob dieser genutzt werden kann oder einer installiert werden muss. Aber das ist ja die alte Leier. Die Frage ist in etwa gleichzusetzen mit "Welche Programmiersprache soll ich nehmen?" auf uu.de.
ScooB
User
Beiträge: 54
Registriert: Donnerstag 28. April 2011, 10:47

Naja das Problem dabei ist das Tool geht an externe und da weiss ich nicht wie das System aussieht bzw. welche Richtlinien bei denen herrschen. Deshalb sollte es schon als eigenständige EXE sein.
BlackJack

@ScooB: Zum *Ausführen* muss es keine EXE sein, da tut es auch eine Batch-Datei und eine Verknüpfung im Startmenü. Für den Komfort beim Endanwender reicht es wenn die Installation davon für ihn gewohnt und einfach geht. Also zum Beispiel eine "setup.exe" oder auch einen MSI-Installer.

Unabhängig von Python wird es nicht gehen, genau so wenig wie C#-Programme ohne eine .NET-Bibliothek, VisualBasic-Programme (vor .NET) ohne ``vbrun*.dll``, oder Java-Programme ohne JRE laufen. Man braucht halt die Laufzeitumgebung zur Sprache. Wenn der Endanwender das nicht separat installieren will/kann/soll, muss es zwangsläufig mitliefern. Nichts anderes machen Programme wie py2exe.
Antworten