Seite 1 von 1

Python beginner, Mehrere Fragen zur Machbarkeit

Verfasst: Freitag 25. Januar 2008, 18:15
von martinli
Moin,
ich habe bisher keine Erfahrungen mit Python. Bisher habe ich nur mit PHP programmiert, da aber doch schon eine ganze menge, auch viel mit Datenbanken (MySql). Nun suche ich eine (auch leicht zu erlernende) Programmiersprache, mit der ich richtige Programme schreiben kann.
Damit meine ich für den Windows Bereich eine .exe die sich entweder installiert, oder sogar vom USB stick aus startbar ist.
Folgende Anforderungen habe ich da das Programm:
- Es muss netzwerkfähig sein (Kommunikation hauptsächlich über Datenbank), auch über das www
- Ich brauche eine grafische Benutzeroberfläche, die vornehmlich nicht in einem Browser läuft
- Wenn möglich sollte das ganze auch Linux/Mac kompatibel sein
- Ich muss mit dem Programm Dateien verschieben, öffnen usw können (und zwar auf dem ganzen Rechner in allen Ordnern, nicht nur wie in meinem lokalen webserver in dem entsprechenden Verzeichnis)
- Es müssen keine Grafischen Anwendungen Programmierbar sein, es geht hauptsächlich um Tabellen
- Ich würde sagen, dass die benötigte Rechenkapazität eher gering ist
- Es müssen allerdings diverse Funktionen kontinuierlich überprüft werden
- ggf Wird es irgendwo auch eine Serversoftware geben, die alles koordiniert

Sofern Python für diese Aufgabe in Frage kommt hätte ich folgende Anschlussfragen:
- Welches ist ein guter Editor? Für PHP nutze ich Weaverslave, gibt es etwas vergleichbares?
- Mit welchem Programm kann ich grafische Benutzeroberflächen programmieren (Auch für Linux/Mac)
- Brauche ich zusätzliche Libarys für meine Anforderungen? Wenn ja welche?

So, das waren mal eine menge Fragen.
Ich hoffe mir kann der eine oder andere von euch helfen und mich dann bei meinen ersten Schritten begleiten!
Vielen Dank schon mal!
Martin

Re: Python beginner, Mehrere Fragen zur Machbarkeit

Verfasst: Freitag 25. Januar 2008, 18:55
von gerold
Hallo Martin!

Willkommen im Python-Forum!

Python kann das und noch viel mehr. Was GUI-Bibliotheken und Editoren betrifft: Davon gibt es mehrere und jeder versucht dir seinen Lieblingseditor und seine Lieblings-GUI-Bibliothek schmackhaft zu machen. So auch ich. :-)

Zuerst mal musst du Python lernen. Dazu findest du ein paar Links auf meiner Homepage. http://halvar.at/python/links/

Als Editor/IDE verwende ich WingIDE-Professional http://wingware.com/. Die dort eingebaute Codevervollständigung kann sich sehen lassen.

Als GUI-Toolkit verwende ich wxPyton http://wxpython.org. Und das lernst du am Besten mit dem Buch "wxPython in Action" http://www.python-forum.de/topic-12878.html
Links zu diesem GUI-Toolkit findest du hier: http://www.python-forum.de/topic-7916.html

In Python ist SQLite-Datenbankzugriff bereits eingebaut. Für andere Datenbanken installiert man sich Zusatz-Pakete. Einige davon findest du hier: http://www.python-forum.de/topic-6848.html

Und für Web-Programme verwende ich CherryPy und Cheetah. Zu diesem Thema hatte ich auch mal etwas zusammengeschrieben: http://www.python-forum.de/topic-10807.html
Aber auch dafür gibt es massig Möglichkeiten und Informationen: http://www.python-forum.de/topic-7063.html

Lies dich einfach mal ein wenig ein und lass dich von den Leuten hier im Forum inspirieren. :D Mit Python steht dir eine neue Welt der Möglichkeiten offen.

mfg
Gerold
:-)

Re: Python beginner, Mehrere Fragen zur Machbarkeit

Verfasst: Freitag 25. Januar 2008, 21:49
von lunar
martinli hat geschrieben:- Es muss netzwerkfähig sein (Kommunikation hauptsächlich über Datenbank), auch über das www
check
- Ich brauche eine grafische Benutzeroberfläche, die vornehmlich nicht in einem Browser läuft
check
- Wenn möglich sollte das ganze auch Linux/Mac kompatibel sein
Grundsätzlich ist Python plattformunabhängig, allerdings kannst du natürlich auch unportable Python-Anwendungen schreiben, wenn du auf plattformspezifische Module zurückgreifst. Ein Programm, welches win32api verwendet, wird natürlich nicht unter Linux laufen. Du musst also schon darauf achten, dass die verwendeten Module ebenfalls plattformunabhängig sind.
- Ich muss mit dem Programm Dateien verschieben, öffnen usw können
check
- Es müssen keine Grafischen Anwendungen Programmierbar sein, es geht hauptsächlich um Tabellen
Was für Tabellen?
- Es müssen allerdings diverse Funktionen kontinuierlich überprüft werden
Wie meinst du das?
- ggf Wird es irgendwo auch eine Serversoftware geben, die alles koordiniert
check
- Welches ist ein guter Editor? Für PHP nutze ich Weaverslave, gibt es etwas vergleichbares?
Ich kenne Weaverslave nicht, ich habe PHP immer vermieden. Insofern kann ich keine konkrete Empfehlung geben. Allerdings kann ich dir etwas Grundsätzliches sagen: Frage 10 Leute nach dem besten Editor und du erhältst 20 unterschiedliche Antworten. Diese Frage ist nicht nur rational zu beantworten. Da schwingt auch viel Ideologie und persönliche Überzeugung mit. Z.B. werden Vim-User grundsätzlich von emacs abraten, und umgekehrt...

Bei Python reicht die Verfügbarkeit von Editoren von nicht zu gebrauchen (notepad) über einfacher Editor (nano) über sehr mächtige Editoren (JEdit, emacs, vim) bis hin zu ausgewachsenen IDEs (Eclipse mit PyDev, Eric). Was am besten zu dir passt, musst du wirklich selbst herausfinden, in dem du dir erstmal die passende Kategorie suchst (Editor oder IDE? Wie umfangreich?) und dann einzelne Anwendungen probierst.
- Mit welchem Programm kann ich grafische Benutzeroberflächen programmieren (Auch für Linux/Mac)
Da gilt das gleiche wie bei Editoren: Jeder empfiehlt sein personal favourite. Gerold hat wxPython empfohlen, meinereiner sagt PyQt4, und wenn mitsuhiko sich meldet, hast du auch noch pyGtk gehört (Nur von Tkinter raten alle ab ;) ).

Definiere genaue Anforderungen an GUI, Lizenz und Umfang des Toolkits, filtere alles, was nicht passt, und probiere die verbleibenden Toolkits aus. Das ist der beste Weg, das geeignete zu finden.
- Brauche ich zusätzliche Libarys für meine Anforderungen?
Theoretisch nicht. Alles benötigte ist in der stdlib. Nur ist die Qualität nicht immer optimal. Tkinter ist imho ein unbrauchbares GUI-Toolkit, genauso wie sqlite nicht für jeden die optimale Datenbank ist. Vernünftige Frameworks für Webentwicklung gibt es gar nicht in der Stdlib, so dass Entwicklung auf diesem Gebiet sehr, sehr schwer ist ohne externe Pakete.
Wenn ja welche?
Welche Libraries sich empfehlen lassen, hängt von deinen Anforderungen ab, welche du noch mehr spezifizieren solltest. Gegenwärtig sind sie einfach zu wage, um ein konkretes Paket zu empfehlen.

Ich kann dir sagen, welche Bibliotheken ich verwende, nur ist das eben meine ganz persönliche Auswahl und muss für dich keineswegs passend sein:
  • SQLAlchemy für Datenbankprogrammierung (ich mag rohes SQL nicht ;) )
  • PyQt4 für GUI-Programmierung
  • Django als Webframework.

Re: Python beginner, Mehrere Fragen zur Machbarkeit

Verfasst: Freitag 25. Januar 2008, 23:07
von veers
lunar hat geschrieben:Da schwingt auch viel Ideologie und persönliche Überzeugung mit. Z.B. werden Vim-User grundsätzlich von emacs abraten, und umgekehrt...
Ach was, ich akzeptiere Emacs durchaus als zweitbesten Editor. Um ehrlich zu sein denke ich das der unterschied zwischen den beiden nicht einmal so gross ist.
Lunar hat geschrieben:Nur von Tkinter raten alle ab ;)
Ausser Pystyler *g*

Verfasst: Freitag 25. Januar 2008, 23:19
von BlackJack
Also ich rate auch nicht generell ab. In diesem Fall schon, weil Tabellen benötigt werden und da man dann sowieso externe Module braucht, kann man auch gleich ein anderes Toolkit nehmen.

Verfasst: Samstag 26. Januar 2008, 13:59
von martinli
Hallo,
erstmal vielen Dank für die vielen Antworten. Irgendwie weiß ich jetzt leider nicht so richtig wie ich anfangen soll.
Ich habe mir schon vor ein wenig Zeit Python einfach mal herunter geladen und installiert.
Aber bevor ich mir dem anfange was ich eigentlich vor habe muss ich ja erstmal lernen mit python zu programmieren.
Als ich gelernt habe PHP zu programmieren hab ich erstmal gegooglet. Da hab ich dann ein paar Seiten mit Beispieltext gefunden und den dann einfach kopiert. Dann hab ich das "Hallo Welt" in "Hallo Du" verändert und dann immer geschaut was passiert. Sozusagen lerning by doing. Da PHP ja wirklich einfach ist hab ich dann auch schon recht bald das erste mal MySql angesprochen und mir dann einfach mal eine Kleine Datenbank gebaut. Gut, mittlerweile hab ich ein riesiges eigenes Adressbuch, in dem ich meine Kontakte in Gruppen sortieren kann, Meine Kontakte können sich auch auf meiner Homepage anmelden usw usw. Export in csv oder das Thunderbild Format....
Ja, im grundegenommen muss mein Programm später nicht viel mehr können, bis auf die Tatsache, dass alles doch deutlich komplizierter ist und eben nicht (nur) im Browser laufen soll.
Im Endeffekt geht alles nur um die Auswertung von Datenbanken (am liebsten MySql, weil ich damit zumindest in PHP gut umgehen kann und die Administration einfach ist). Von mehreren Arbeitsplätzen aus soll man die Möglichkeit haben auf die gleichen Daten zurück zu greifen, sie zu verändern, Dateien hinterlegen können und am besten wäre es, wenn man aus China oder Amerika auch auf die selben Daten zugreifen kann.
Ja, jetzt die Frage wie ich an sowas ran gehe.
Mit welchem Welche Programme brauche ich jetzt ganz konkret? und kann ich nachher auch mit Python eine "programm.exe" erstellen, mit der das Programm dann auf jedem x beliebigen Rechner läuft (also .exe logischerweise nur auf Windows)?
Wenn ich das richtig verstehe brauche ich jetzt:
- Python (Freeware)
- Einen Editor (gibt es da auch Freeware? oder sind die zum kaufen einfach um so viel besser, dass es sich lohnt so viel geld aus zu geben?)
- Einen Programm zur Oberflächengestaltung (gibt es da Freeware und ist das dann für Windows und Linux verwendbar?)
- Toolkits? Wofür brauche ich die?
Ja, irgendwie hab ich das Gefühl dass ich noch nicht ganz verstehe wie das Programmieren mit Python funktioniert.

Ich hab mir jetzt einfach mal einen Quellcode gesucht:
Dateiname hallo.py
Quellcode:

Code: Alles auswählen

def hallo():
    print 'Hallo, WELT'
    print 'Python IS fun!'
Wenn ich den starte, dann öffnet sich kurz ein schwarzes fenster und schließt sich dann sofort wieder? Ist das so richtig?
So, ich glaub das waren erstmal wieder genügend Fragen!
Vielen dank noch ein mal für eure Hilfe!
Martin

Verfasst: Samstag 26. Januar 2008, 14:13
von Leonidas
martinli hat geschrieben:Mit welchem Welche Programme brauche ich jetzt ganz konkret? und kann ich nachher auch mit Python eine "programm.exe" erstellen, mit der das Programm dann auf jedem x beliebigen Rechner läuft (also .exe logischerweise nur auf Windows)?
Steht in der FAQ, lies sie doch.
martinli hat geschrieben:- Einen Editor (gibt es da auch Freeware? oder sind die zum kaufen einfach um so viel besser, dass es sich lohnt so viel geld aus zu geben?)
Ja, gibt es. Nicht nur Freeware sondern auch Freie Software. Hat dir Lunar geschrieben, lies das doch mal.
martinli hat geschrieben:- Einen Programm zur Oberflächengestaltung (gibt es da Freeware und ist das dann für Windows und Linux verwendbar?)
Nicht nur Freeware sondern auch Freie Software. Siehe Glade, Gazpacho, wxGlade, xrcEd, Qt Designer.
martinli hat geschrieben:- Toolkits? Wofür brauche ich die?
Um eine GUI anzuzeigen. Überflieg mal die Artikel zu GTK+ und Qt in der Wikipedia.
martinli hat geschrieben:

Code: Alles auswählen

def hallo():
    print 'Hallo, WELT'
    print 'Python IS fun!'
Wenn ich den starte, dann öffnet sich kurz ein schwarzes fenster und schließt sich dann sofort wieder? Ist das so richtig?
Ja. Wenn du die Ausgabe auch sehen willst lies die FAQ, da steht alles drin. Ich kann dir aber verraten, dass da bei dem Quellcode nichts ausgegeben wird.