Einstieg in Python

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
Blacktiger
User
Beiträge: 4
Registriert: Mittwoch 11. Mai 2011, 13:49

Hi.
Ich plane, in Python einzusteigen, aber zunächst muss geklärt werden, ob Python für mich das Richtige ist:

Ich möchte ein "universelles Werkzeug", welches ich von "Shellscripts", über kleine Hilfsprogramme bis hin zu Webentwicklung und einfachen GUI's verwenden kann.
Also "Eins für alles".
Ich möchte eine elektronische Anlage (Die über mehrfaches RS232 angesteuert wird, es sind mehrere Komponenten die jeweils separat angesteuert werden müssen) ans Internet bringen. Dazu sind vielfälige Maßnahmen erforderlich:
Die Daten müssen über RS232 eingelesen und verarbeitet werden, danach müssen sie auf einer Webseite interaktiv/live angezeigt werden.
Ich hätte gerne ein einheitliches System, statt mittels PHP + CGI Perl + Shellscripts zu arbeiten.
Im Zuge der Python Einführung möchte ich übrigens gleichzeitig auf Debian Linux umsteigen.

Gibt es für Python ein gutes, deutschsprachiges Einsteigerbuch / Tutorial, um zunächst die Grundlagen zu erlernen?
BlackJack

@Blacktiger: Übersicht über die Sprache gibt das Tutorial aus der Dokumentation. Wenn es auch Webentwicklung werden soll, dann solltest Du vorerst bei Python 2.x bleiben. Die Finger lassen sollte man vom umfassenden Handbuch von Galileo – das vermittelt kein idiomatisches Python.

Für RS232 könntest Du dann einen Blick auf PySerial werfen. Bei Webentwicklung steht die Wahl eines Rahmenwerks an. Und auch die Entscheidung ob ein kleines wie Bottle oder Flask ausreicht, oder etwas umfangreicheres wie Django benötigt wird. Bei einer "live"-Anzeige solltest Du auch einplanen JavaScript als zusätzliche Programmiersprache für den Client zu benutzen, beziehungsweise benutzen zu müssen.
Blacktiger
User
Beiträge: 4
Registriert: Mittwoch 11. Mai 2011, 13:49

Warum sollte man bei Python 2.x bleiben und nicht auf die neueste Version gehen wenn man Webentwicklung machen möchte?

Es handelt sich bei meinem System um eine SPS, eine Solaranlage und eine Heizungsanlage.
Es gibt zwar vom Hersteller eine Webapplication. Dafür gibt es ein Servermodul was an den DSL Router angeschlossen wird.
Die Daten werden anschließend über die Webseite des Herstellers abgerufen.
In den Nutzungsbedinungen erklärt man sich mit zeitlich unbefristetem Loging und Auswertung sowie kommerzieller Nutzung (Marktforschung, Analyse durch EVU etc) der Daten bereit.
Anhand der Daten lässt sich beispielsweise auf die eigene Lebensweise Rückschlüsse ziehen (z.B. wann ich aufstehe+dusche usw)
Das kommt mir nicht ins Haus.
Die Daten stehen aber auch an RS232 Schnittstellen mit einem dokomentierten Klartext-Protokoll zur Verfügung. Ich habe einen PC basierten Router und wollte die Auswertung der Daten selbst realisieren.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Blacktiger hat geschrieben:Warum sollte man bei Python 2.x bleiben und nicht auf die neueste Version gehen wenn man Webentwicklung machen möchte?
In dem Bereich gibt es noch einige Module bzw. Frameworks, welche (noch) nicht unter 3.x laufen.
Das Leben ist wie ein Tennisball.
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

kann auch nur pyserial empfehlen.
hab damit schon so einiges über rs232 angesteuert und ausgelesen.
das klappt ziemlich easy und ohne großen stress.
brauchst halt die befehlssätze, wie du was lesen und schreiben kannst.
aber das sollte ja nicht das problem sein.
Blacktiger
User
Beiträge: 4
Registriert: Mittwoch 11. Mai 2011, 13:49

Danke für den Tip mit dem Pyserial. Nette Sache.
Als Webframework wollte ich den Django nehmen weil der am Bekanntesten ist und ich damit alle Möglichkeiten habe für eventuell später folgende Projekte. Läuft der mit 3.x oder ist das noch so ein Framework, was die alte Version braucht?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Blacktiger hat geschrieben:Läuft der mit 3.x oder ist das noch so ein Framework, was die alte Version braucht?
Afaik noch mit 2.x. Ich kenne auch keines, das bereits stabil mit 3.x läuft, da die neue WSGI Spezifiaktion ja erst seit zwei, drei Monaten fertig ist.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Blacktiger
User
Beiträge: 4
Registriert: Mittwoch 11. Mai 2011, 13:49

mhh ok dann mache ich die 2er Version drauf.
Dauert eh bis ich die Grundlagen habe, bis dahin läuft es dann bestimmt mit 3.x :)

Kann der Django eigentlich auch Diagramme erstellen oder gibts dafür dann entsprechende "Addons"?

Was mich auch mal interessieren würde: Gibts irgendwo eine vollständige Liste aller Frameworks mit kurzer Beschreibung und Vor+Nachteilen?

Wie funktioniert das eigentlich mit dem Framework?
Mache ich mir da ein Template für das Design, und rufe dann entsprechende Funktionen auf, die ich mit Daten füttere? Das Django macht dann die Ausgabe? Also Beispielsweise Funktion "Textausgabe" Funktion "Zeichne Diagramm" Funktion "Lese Datensatz" oder sowas?

Wäre es dann möglich, ein Python Script zu machen, welches über einen Cronjob die Daten via pyserial abholt und in eine mysql DB einträgt, das Famework erzeugt dann aus diesen Daten ein Diagramm?
Eine Funktion anstoßen, wie z.B. "Hole die neuesten Daten jetzt" anstoßen ginge auch oder?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Blacktiger hat geschrieben:mhh ok dann mache ich die 2er Version drauf.
Dauert eh bis ich die Grundlagen habe, bis dahin läuft es dann bestimmt mit 3.x :)
Das ist die richtige Einstellung :-)
Blacktiger hat geschrieben: Kann der Django eigentlich auch Diagramme erstellen oder gibts dafür dann entsprechende "Addons"?
Dafür gibt es Libs; ob es da spezielle Plugins für Django gibt, weiß ich nicht. PyPlot, SciPy oder auch ReportLab fielen mir da ein.
Blacktiger hat geschrieben: Was mich auch mal interessieren würde: Gibts irgendwo eine vollständige Liste aller Frameworks mit kurzer Beschreibung und Vor+Nachteilen?
Schau mal ins wiki: wiki.python-forum.de Da gibts eine Seite über Frameworks.
Blacktiger hat geschrieben: Wie funktioniert das eigentlich mit dem Framework?
Mache ich mir da ein Template für das Design, und rufe dann entsprechende Funktionen auf, die ich mit Daten füttere? Das Django macht dann die Ausgabe? Also Beispielsweise Funktion "Textausgabe" Funktion "Zeichne Diagramm" Funktion "Lese Datensatz" oder sowas?
So in der Art. Schau Dir doch mal das Quickstart-Tutorial von Flask an. Auch wenn Du den Code nicht verstehst, siehst Du ein wenig, wie gängige Prinzipien funktionieren. Du kannst auch bei Django etwas ähnliches finden.
Blacktiger hat geschrieben: Wäre es dann möglich, ein Python Script zu machen, welches über einen Cronjob die Daten via pyserial abholt und in eine mysql DB einträgt, das Famework erzeugt dann aus diesen Daten ein Diagramm?
Prinzipiell schon. Man kann natürlich zwei Scripte schreiben. Eines holt Daten und trägt diese ein, das andere ist das eigentliche Web-Script und stellt diese per Framework dar. Eine Schwierigkeit wäre dabei, wie das zweite Script auf Änderungen reagiert... aber das sind Fragen, die Du Dir im Moment noch nicht zu stellen brauchst. Bis Du dahin kommst, wird viel viel Zeit vergehen ;-)
Blacktiger hat geschrieben: Eine Funktion anstoßen, wie z.B. "Hole die neuesten Daten jetzt" anstoßen ginge auch oder?
[/quote]
Die Frage dabei ist, wer anstößt ;-) Wenn es der User ist (via http-Request) ist das alles kein Problem. Schwieriger wirds, wenn das Webscript "erkennen" soll, dass es neue Daten gibt. (Pull vs. Poll).
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Kann der Django eigentlich auch Diagramme erstellen oder gibts dafür dann entsprechende "Addons"?
Ich selber habe nach ein wenig testen und Doku lesen die Diagramme aus ReportLab genommen. Wobei ReportLab als PDF-Generator so wie so im Einsatz war. Alternativ ginge auch Google Charts - die API ist IMHO ziemlich simpel und die Lernkurver flach.

Gruß, noisefloor
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

noisefloor hat geschrieben:Alternativ ginge auch Google Charts - die API ist IMHO ziemlich simpel und die Lernkurver flach.
Ähm, der OP will, dass seine Daten privat bleiben. Da ist es keine gute Idee, die an Google zu liefern.
BlackJack

`matplotlib` wäre eine gängige Lösung für Diagramme.
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

oder wenn du viel machen willst mit plotten und berechnen kann ich dir auch noch R in verbindung mit rpy empfehlen
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
mkesper hat geschrieben:Ähm, der OP will, dass seine Daten privat bleiben. Da ist es keine gute Idee, die an Google zu liefern.
Na ja, das wäre ein hervorrangender Startpunkt für eine Metadiskussion ohne sinnvolles Ende. Lassen wir lieber. ;-)

Gruß, noisefloor
Antworten