Was brauche ich ??

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
josefkoller
User
Beiträge: 4
Registriert: Sonntag 16. Januar 2011, 18:13

Hallo,

stoße bei recherchen im Netz immer wieder auf Python. Python scheint momentan in zu sein. Bei meiner Suche über Python bin ich auf so viele Begriffe, Erläuterungen, Plugin's usw. gestoßen, daß ich richtig erschlagen bin.

Ehrlich gesagt, ich weiß nicht mit was und wie ich anfangen soll.

Vielleicht mal kurz meine Anforderungen oder Vorstellungen:

- GUI
Ich bin es leid, jede Komponente per Hand zu tippeln (sowas wie Delphi oder VB, wär gut).

- Debuggen
ohne geht's nicht.

- Datenbankanbindung an mySQL.

- evtl. PHP, AJAX request, usw. für die Datenbearbeitung. Oder geht das in Python anders???

- Tutorial (nicht gerade eines, mit dem man "Hello World" erzeugt.

Vielen Dank erstmal.

Josef
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

- GUI Toolkits haben ihre eigenen Designer
- Debugger und Profiler sind in der stdlib
- oursql
- Django, Pyramid und Flask als populäre Frameworks, Werkzeug und Webob als Libraries existieren für Webanwendungen, desweiteren lies PEP 333 und PEP 3333
- http://docs.python.org/tutorial sowie http://docs.python.org/reference erklären alles relevante
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

- GUI
Ich bin es leid, jede Komponente per Hand zu tippeln (sowas wie Delphi oder VB, wär gut).
Schau dir mal pyqt an. Allerdings solltest du lieber erstmal anfangen die Grundlagen der Sprache zu beherrschen
- Debuggen
ohne geht's nicht.
Ist in einer Entwicklungsumgebung wie pydev integriert. Jedoch hab ich das Gefühl das gerade bei Python in Vergleich zu anderen Sprachen ein Debugger recht wenig genutzt wird, das liegt vmtl. daran, das es z.B. möglich ist nach Ausführen des Programms in den interaktiven Modus zu wechseln und sich dort die entsprechenden Objekte anzuschauen. Außerdem kann man die Funktionsweise einzelner Codeschnipsel schon zuvor im interaktiven Modus ausprobieren.
- Datenbankanbindung an mySQL
Kommt drauf an was du machen willst. Für Webentwicklung ist eine entsprechende Bibliothek evtl. bereits im Webframework integriert. Was hast du denn vor?
- evtl. PHP, AJAX request, usw. für die Datenbearbeitung. Oder geht das in Python anders???
Bitte was??? Was redest du da für einen Unsinn? PHP ist eine andere Programmiersprache - ich denk du willst Python verwenden. Und was hat Ajax mit Datenverarbeitung zu tun?
- Tutorial (nicht gerade eines, mit dem man "Hello World" erzeugt.
http://docs.python.org/tutorial

MFG HerrHagen
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Hallo,

ich habe mit A Byte of Python begonnen.
Falls Dir das zu simpel ist, ist das Python Tutorial in meinen Augen ebenfalls ein sehr guter Einstieg. Das ganze andere Zeugs ist eigentlich nur ein Umweg, um dann früher oder später doch beim offiziellen Tutorial zu landen... ;-) Und daneben immer die Library Reference offenhalten.

Und die Ratschläge, die man hier im Forum erhält, sind erste Sahne! Kein Halbwissen, mit dem man nach 3 Tagen warten abgespeist wird, sondern fundierte, zielführende Hilfestellung innerhalb kürzester Zeit!!! Welcher Nobelpreis würde dafür eigentlich in Frage kommen?

Gruß
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
josefkoller
User
Beiträge: 4
Registriert: Sonntag 16. Januar 2011, 18:13

Hallo,
Bitte was??? Was redest du da für einen Unsinn? PHP ist eine andere Programmiersprache - ich denk du willst Python verwenden. Und was hat Ajax mit Datenverarbeitung zu tun?
na na na, wo bleibt den deine gute Erziehung.

Dachte, diese Begriffe würden ausreichen, um zu erklären, mit was ich bisher gearbeitet habe. Eben mit mySQL PHP und Requests. Zudem steht da gleich dahinter, ob man das mit Python anders macht.

Also, laß solche Formulierungen bleiben oder antworte erst gar nicht, wenn ich in Deinen Augen zu blöd frage.
Kommt drauf an was du machen willst. Für Webentwicklung ist eine entsprechende Bibliothek evtl. bereits im Webframework integriert. Was hast du denn vor?
Naja bisher hab ich Desktopanwendungen mit Delphi gemacht. Webanwendungen mit MySQL, PHP, Javascript.

Vielleicht ginge ja mit Python beides?

Liege ich mit folgenden Downloads richtig?

Python 2.7.1 Windows Installer
Django 1.2.4
oursql 0.9.2

noch was ??? oder was anderes ???

Ansonsten vielen Dank für die Hinweise.

Josef
josefkoller
User
Beiträge: 4
Registriert: Sonntag 16. Januar 2011, 18:13

Hallo,
ich habe mit A Byte of Python begonnen.
Ich hab grad angefangen darin zu lesen und bin dabei auf Bo Constructor gestoßen.

Wär das was für mich (im Hinblick auf GUI) oder gibt es was besseres (wieder so eine dumme Formulierung)???

Ich möchte einfach schon am Anfang vermeiden, daß ich "falsch" anfange. In anderen Foren taucht bei Fragen öfter Mal die Formulierung auf: "Warum nimmst du denn nicht xxxxxx. Ist effektiver, schneller und was weiß ich.

Danke.

Josef
funkheld
User
Beiträge: 258
Registriert: Sonntag 31. Oktober 2010, 09:26

hmmm., denk dran Python ist ein Interpreter und keine schnelle Delphi-Maschine... :D .

Nicht das du Schnelligkeit erwartest, dann bist du falsch mit Python.
Alle schnellen Grafiksachen(Pygame) habe eine Dll die in C oder C++ erstellt wurden.
Also das Rad wurde dann da wieder neu erfunden.

Ich möchte einfach schon am Anfang vermeiden, daß ich "falsch" anfange. In anderen Foren taucht bei Fragen öfter Mal die Formulierung auf: "Warum nimmst du denn nicht xxxxxx. Ist effektiver, schneller und was weiß ich.
Ich glaube die Jungs haben recht , was sie sagen. Du hast falsche Erwartungen von Python wenn du schon gleich beim zweiten Satz mit Gui...usw ankommst.

Also vergiss Python.
BlackJack

@josefkoller: Nur die Begriffe haben offensichtlich nicht gereicht, denn ich wusste auch nicht was PHP und AJAX und die Frage ob man das in Python anders macht, eigentlich sollte. Denn ganz offensichtlich schreibt man in Python Python und nicht PHP. Der Satz macht(e) keinen Sinn.

In Python gehen sowohl Desktop als auch Webanwendungen. Bei Webanwendungen benutzt man in der Regel ein Rahmenwerk. Django hat da eine gewisse Verbreitung. Für kleine, oder auch sehr individuelle Sachen bietet sich eines der Mikrorahmenwerke wie Bottle oder Flask an.

Und ja, Webentwicklung funktioniert anders als bei PHP, es sei denn man hat dort auch ein Rahmenwerk verwendet, das ähnlich wie solche in Python (oder Java, Perl, Ruby, ...) funktioniert.

Ob Django `oursql` unterstützt weiss ich nicht, da brauchst Du eventuell eine DB-Anbindung für MySQL, die von Django unterstützt wird, oder für Django etwas um `oursql` verwenden zu können.

Beim Thema GUI müsstest Du Dich vielleicht erst einmal auf ein GUI-Toolkit und eine Anbindung daran festlegen. Die haben alle leicht verschiedene Eigenschaften sowohl technischer Natur als auch was zum Beispiel Lizenzen angeht. GUI-Designer gibt's wohl für alle. Bei `Tkinter` und `wx` habe ich bisher immer "handgeschriebene" GUIs bevorzugt. Das muss man IMHO sowieso mindestens einmal gemacht haben, damit man die Grundlagen des GUI-Toolkits besser versteht.

Boa Constructor wäre dann übrigens wxWidgets als GUI-Toolkit. Falls Du Dich fragst ob dass das "beste" GUI-Toolkit ist: Da wirst Du so viele Meinungen hören, wie es GUI-Toolkits gibt. Letztendlich musst Du selbst entscheiden womit Du klar kommst und was für Deine Situation das passende ist.

Entgegen der Meinung von funkheld ist Python sowohl für Desktop- als auch für Webanwendungen geeignet. Es wird ja schliesslich für beides auch eingesetzt. Wenn reines Python zu langsam ist, dann gibt es in der Tat Module und Anbindungen an Bibliotheken, die in anderen Programmiersprachen geschrieben wurden, aber das ist eher eine Stärke von Python als eine Schwäche.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo.

Am besten ignorierst du funkhelds Beitrag, außer die benötigts unqualifizierte Meinungen. Der ist irgendwo in den 70ern hängen geblieben ;-)

Mit "A Byte of Python" machst du auf jeden Fall nichts falsch, als Alternative bietet sich noch die Übersetzung des "original" Python-Tutorials an. An der Übersetzung haben hier einige aus dem Forum mitgeholfen, du weißt also, von wem die Informationen kommen.

Ich würde dir empfehlen, als erstes eins der beiden Tutorials durchzuarbeiten und vielleicht die ein oder andere Beispielanwendung zu schreiben. Wenn du etwas Feedback zu deinem Code möchtest, kannst du diesen hier auch posten. Erfahrungsgemäß wirst du am Anfang sicherlich vieles falsch und umständlich machen, mit den dadurch gewonnen Hinweisen wird sich das dann sicher ändern.

Wenn du die ersten Programme fertig hast, kannst du dich an die GUIs trauen. Es hängt ein wenig davon ab, wie fit du bereits mit OOP bist, irgendwie wirst du dich sicher durchschlagen ;-) Danach kannst du dich auch an die großen Webframeworks trauen. Vielleicht lohnt sich vorher auch ein Blick auf Bottle oder Flask. Diese sind recht handlich und du kannst sehr schnell Ergebnisse erzielen. Um damit umzugehen reichen auch die Grundlagen aus dem vorherigen Absatz.

Die Arbeit mit Datenbanken kannst du im Prinzip zu jeder Zeit beginnen. Die Schnittstellen sind kinderleicht zu bedienen und mit SQL kannst du schon umgehen. Aber auch hier gibt es natürlich noch Frameworks, mit denen du dir das Leben einfacher machen kannst. Aber vielleicht alles zu seiner Zeit ^^

Bis dann,
Sebastian
Das Leben ist wie ein Tennisball.
josefkoller
User
Beiträge: 4
Registriert: Sonntag 16. Januar 2011, 18:13

Hallo,

Danke nochmal. Ich mach mich dann mal ans Lesen und probieren.

Wenn ihr ein bißchen Geduld mit mir habt und ich Euch mit meiner Fragerei nicht allzusehr auf die Nerven gehe, wird das schon.

Tschau

Josef
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

funkheld hat geschrieben: Alle schnellen Grafiksachen(Pygame) habe eine Dll die in C oder C++ erstellt wurden.
Also das Rad wurde dann da wieder neu erfunden.
Pygame setzt auf SDL auf; man nennt so was auch "Binding". Insofern wird das Rad nicht neu erfunden, sondern bereits bestehende Felgen mit einem schönen Mantel überzogen ;-)

Kann man übrigens direkt auf der Webseite nachlesen: http://pygame.org/wiki/about :roll:

Eine sehr gute Vorgehensweise, da etabliertes weitergenutzt wird. Für selbiges gibt es zig weitere Beispiele, etwa das Python Binding für die Grafikengine Ogre3D uvm.

Vielleicht solltest Du doch mal ein wenig recherchieren oder nachdenken, bevor Du so lautstark etwas postulierst?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

josefkoller hat geschrieben:... und bin dabei auf Bo Constructor gestoßen. Wär das was für mich (im Hinblick auf GUI) ...
Ich würde Dir ebenfalls empfehlen, so viel wie möglich "per Hand" zu machen. Jedenfalls verwendet Boa Constructor wxPython. Damit habe ich auch begonnen. Warum? Keine Ahnung! Ich hatte damals Unmengen an Informationen über wxPython, PyGTK und PyQt gesammelt. Meinungen eingeholt. Als blutiger Anfänger das meiste sowieso noch nicht verstanden (vieles davon versteh' ich immer noch nicht) und mich deshalb mehr oder weniger "aus dem Bauch heraus" für wxPython entschieden. Das für mich vielleicht einzige Kopfargument war auch, dass es mit wxPython in Action ein schönes Tutorial vom wxPython-Entwickler Robert Dunn selbst gibt. Das hilft mir neben der wxPython-Dokumentation doch sehr.
Ach ja, und die wxPython-Demo sollte ich auch noch erwähnen. Eine Sammlung von verlässlichen kleinen Beispielen zu fast jedem wxWidget.

Aber egal, mit welchem GUI-Toolkit ich begonnen hätte: Für ein erstes Verstehen, wie OOP konkret ausschauen kann, finde ich das Befassen mit einem solchen Toolkit sehr gut geeignet.

Hier findest Du eine Übersicht über diverese GUI-Toolkits für Python.

Wie auch immer... Du wirst sehen, Python macht sau viel Spaß!! :mrgreen:

Gruß
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

funkheld hat geschrieben:Nicht das du Schnelligkeit erwartest, dann bist du falsch mit Python.

Alle schnellen Grafiksachen(Pygame) habe eine Dll die in C oder C++ erstellt wurden.
...um in Python genutzt werden zu können. :)
funkheld hat geschrieben:Also das Rad wurde dann da wieder neu erfunden.
Nö. Und dir wurde ja bereits angedeutet, was ein Binding ist.
funkheld hat geschrieben:Du hast falsche Erwartungen von Python wenn du schon gleich beim zweiten Satz mit Gui...usw ankommst.
Kann Python problemlos. PyGTK, PyQt usw machen den meisten sogar mehr Spass als deren C bzw C++-Varianten.

Fazit: "In einer Sprache nutzbar" ist nicht notwendigerweise mit "in einer Sprache (sinnvoll) implementierbar" gleichzusetzen. Ich würde nicht dazu raten, eine Bibliothek für höhere Mathematik in reinem Python zu programmieren (wobei PyPy ja offenbar beachtenswerte Fortschritte macht). Wohl aber könnte ein grafisches Tool, welches darauf aufsetzt und z.B. ein Binding nutzt, ohne Schwierigkeiten in Python geschrieben werden. Es könnte sich dann natürlich all die Vorteile wie leichte Lesbarkeit, leichte Wartbarkeit etc zunutze machen. Nicht selten ist der Programmierer einer Bibliothek ja ein anderer als derjenige, der die passende GUI gestaltet hat. Von daher ist der Gedanke auch keinesfalls abwegig.
Antworten