Logo

Python - Die Ers­ten Schritte

Schlagwörter: ,

Nach dem ich nun schon seit eini­ger Zeit mit der Hoch­spra­che Python lieb­äugle, habe ich mich nun dazu durch gerun­gen, mir diese nun etwas näher anzusehen.

Der Aus­lö­ser dafür ist die - durch eine ange­strebte Migra­tion eines grö­ße­ren Windows-XP-Firmennetzwerkes zu Linux bedingte - Not­wen­dig­keit, beste­hende Microsoft-Office-Makros in Open­Of­fice zumin­dest funk­tio­nell nach­zu­bil­den. Gerade diese Makros machen den Abschied vom pro­prie­tä­ren Office oft sehr schwie­rig - warum sollte es also in mei­nem Fall anders sein Evil .Also galt es zunächst fest­zu­stel­len, wie diese Makros am bes­ten zu pro­gram­mie­ren sind. Da ich in Sachen (Office-) Makros rela­tiv (also abso­lut) unbe­leckt bin, galt meine erste Suche den Mög­lich­kei­ten, die Open­Of­fice zur Makro-Programmierung bie­tet. Natür­lich stieß ich zu nächst auf das board­ei­gene OpenOffice-Basic, wel­ches es nativ ermög­licht, Makros zu imple­men­tie­ren. Aller­dings finde ich die ange­bo­tene UNO-Schnitt­stelle viel inter­es­san­ter. Dar­über ist es mög­lich, in ande­ren Spra­chen ent­wi­ckelte Makros in Open­Of­fice ver­füg­bar zu machen (s. Pro­jekt­seite). Da unter den genann­ten Spra­chen sich eben­falls Python befin­det, lag die Bestre­bung für mich nahe, es zu die­sem Zweck einzusetzen.

Da ich (wie auch meine Kol­le­gen) so oder so eine für mich neue Spra­che erler­nen muss, bie­tet Python ein­fach die bes­se­ren Einstiegs- und vor allem spä­tere Ein­satz­mög­lich­kei­ten. Damit las­sen sich schließ­lich nicht nur Makros, son­dern so ziem­lich alle ande­ren Sachen rea­li­sie­ren. Für letz­tere setzte ich in der Ver­gan­gen­heit eigent­lich immer auf Perl - aller­dings will ich nun auch mal mit der Mode gehen Grin .

Soweit zumin­dest in der Theo­rie, was die Pra­xis zu bie­ten hat, wird die Zukunft zeigen.

Wenn man etwas neu macht, dann macht man es richtig

…und schon gehen die Schwie­rig­kei­ten los. Erst vor kur­zem wurde Python 3000, also Python 3, ver­öf­fent­licht. Das soll zwar (noch) etwas lang­sa­mer als Python 2.5 sein, dafür aber der­ma­ßen über­ar­bei­tet und ver­bes­sert wor­den sein, dass es mit sei­ner Vor­gän­ger­ver­sion nicht mehr kom­pa­ti­bel ist. Eben diese ist aber die der­zeit aktu­elle und in den meis­ten Dis­tri­bu­tio­nen vor­han­dene. Ubuntu Intre­pid Ibex bringt noch die Ver­sion 2.5.2 mit, Open­SUSE bie­tet schon 2.6. Letz­tere bie­tet eine Art Kompatibilitäts-Modus, in dem man die Lauf­fä­hig­keit des Scripts in der dreier Python­ver­sion mit dem Schal­ter python -3 beim Pro­gramm­auf­ruf über­prü­fen las­sen kann. So heißt es bei Ubuntu: war­ten auf die nächste Ver­sion im April.

Natür­lich lässt sich Python 3 auch instal­lie­ren, aller­dings kann die stan­dard­mä­ßig ver­wen­dete Ver­sion nicht ein­fach über­schrie­ben wer­den. Viele sys­tem­nahe oder anders not­wen­dige Pro­gramme wur­den in Python ver­fasst. Wie oben ja schon beschrie­ben, sind die alte und neue Ver­sion ein­fach inkom­pa­ti­bel. Würde man die Stan­dards ein­fach umschrei­ben, wür­den viele Pro­gramme ein­fach nicht mehr funk­tio­nie­ren. So muss ich beide Ver­sio­nen par­al­lel instal­lie­ren und beim Pro­gramm­auf­ruf fest­le­gen, wel­che Ver­sion denn nun genutzt wer­den soll. Um der Voll­stän­dig­keit Genüge zu tun, will ich noch erwäh­nen, dass ein Con­ver­ter für ältere Python mit­ge­lie­fert wird. Der über­prüft aller­dings ledig­lich den Syn­tax, nicht aber die Seman­tik der Programme.

Das Ganze führt dann auch direkt zu Ein­stiegs­pro­blem #2:

Wel­che IDE bzw. wel­cher Edi­tor ist wohl der beste für mich? Da ich seit rela­tiv kur­zer Zeit beken­nen­der Anhän­ger von Net­be­ans (PHP- & Webent­wick­lung) bin, liegt mein Bestre­ben nahe, diese IDE auch für Python ein­zu­set­zen. Lei­der ist die Unter­stüt­zung in Ver­sion 6.5 für Python noch nicht inte­gra­ler Bestand­teil und ein ent­spre­chen­des Plu­gin befin­det sich noch im Beta-Stadium. Aller­dings besteht Hoff­nung auf die Ver­sion 7. Bliebe noch Eclipse mit dem PyDev-Plugin. Doch von die­ser IDE hatte ich mich ja schon zu Guns­ten von Net­be­ans ver­ab­schie­det. Irgend­wie wider­strebt es mir auch, zwei der­ma­ßen mäch­tige und und umfang­rei­che IDEs zu instal­lie­ren und zu benutzen.

Wei­ter­hin exis­tiert noch Eric4, eine (grund­sätz­lich) eigene Python-IDE. Bei der fand ich aller­dings (in ange­mes­se­ner Zeit) keine Mög­lich­keit, zwi­schen den Python-Versionen zu switchen.

Auch Edi­to­ren, wie der all­mäch­tige Vim oder Kate bie­ten zwar grund­sätz­lich genug Funk­tio­na­li­tä­ten zum Pro­gram­mie­ren, sind aber den­noch irgend­wie unprak­tisch. So muss man immer zwi­schen Editoren-Fenster zum Aus­füh­rungs­fens­ter des Scripts wechseln.

Lange Rede, kur­zer Sinn, schließ­lich lan­dete ich bei Geany - einer klei­nen, schnel­len aber funk­ti­ons­rei­chen Ent­wick­lungs­um­ge­bung. Deren Plus­punkte sind u.a.:

  • Open Source
  • platt­form­über­grei­fend vorhanden
  • klei­nes und schnel­les aber doch mäch­ti­ges Programm
  • Syn­tax­high­light­ing, Code-Folding & -Vervollständigung
  • inte­grierte Kon­sole, die das Aus­füh­ren der Scripte erleich­tert, ohne das Pro­gramm ver­las­sen zu müs­sen (VTE muss instal­liert sein)
  • Pro­gramm­aus­füh­rung per Button- oder Tastendruck
  • Tabu­la­to­ren wer­den durch Leer­zei­chen ersetzt (wich­tig für Python, da ein Tab nicht ent­spre­chend vie­len Leer­zei­chen entspricht)
  • Aus­wahl des zu ver­wen­den­den Inter­pre­tors (python oder python3)
  • Erwei­ter­bar­keit durch Plugins

Mit Geany bin ich rund um zufrie­den und würde es für alle Script-Programmierungen, bei denen man das Pro­gramm direkt aus­füh­ren will, unein­ge­schränkt emp­feh­len. Für Webent­wick­lung etc. bleibe ich aller­dings dann doch eher bei Net­be­ans. Unter Open­SUSE musste ich aller­dings noch das Paket vte nach­in­stal­lie­ren, um die vir­tu­elle Kon­sole im Pro­gramm im Nach­hin­ein ver­füg­bar zu machen. Damit diese dann kom­plett unter­stützt wird, musste ich das Kon­fi­gu­ra­ti­ons­ver­zeich­nis .geany aus mei­nem Benut­zer­ver­zeich­nis löschen. Erst dann funk­tio­nierte sie unein­ge­schränkt. Für Ubuntu holte ich mir das DEB-Paket direkt von getdeb.net, wo es in aktu­ells­ter Ver­sion 0.15 (Ubuntu-Repos: 0.14) vorliegt.

Nach dem diese Vor­über­le­gun­gen & -arbei­ten abge­schlos­sen sind, kann es end­lich ans Ein­ge­machte gehen.

Gene­ra­tion Google oder Das Impe­rium schlägt zu viel vor

Um eine neue Pro­gram­mier­spra­che zu erler­nen, ist es nicht ganz tri­vial, geeig­nete Quel­len zu fin­den. Die Zei­ten, wo man sich eine Refe­renz von O’Reilly oder Addi­son Wes­ley aus dem Buch­la­den sei­ner Wahl holen konnte und damit hin­rei­chend ver­nünf­tige Lite­ra­tur hatte, sind lei­der vor­bei. Sicher­lich, ein Buch kann man sich immer noch kau­fen, aller­dings hin­ken die nicht sel­ten der Aktua­li­tät (siehe Python-Versionen) hin­ter­her. Eine Suche bei Google (ja, es ist ein Daten­krake, aber lie­fert immer noch die bes­ten Tref­fer) ist da meist schnel­ler, kos­ten­güns­ti­ger und auch in den Ergeb­nis­sen aktu­el­ler. Den­noch muss man bei der ange­bo­te­nen Infor­ma­ti­ons­viel­falt diese fil­tern. Nicht alles, was im Inter­net zu fin­den ist, ist rich­tig oder manch­mal ein­fach nicht die beste Lösung für das eigene Problem.

Oft­mals kann man da ein­fach nur auf sein Glück ver­las­sen, sich aus den rich­ti­gen Quel­len zu bedie­nen. Einen guten Anhalts­punkt bie­ten da Refe­ren­zen, die von ver­schie­de­nen (ernst­zu­neh­men­den) Quel­len immer wie­der genannt wer­den. Dazu kann man wohl auch die Google-Treffer-Sortierung zäh­len, aber auch ein­schlä­gige Foren. Bei einer rela­tiv inten­si­ven Suche fand ich fol­gende Online-Quellen, die für mich in Bezug auf Python ganz gute Ergeb­nisse liefern:

Allen gemein ist, dass sie in Bezug auf Python 3 mit Vor­sicht zu genie­ßen sind, was sich beson­ders bei den Code-Beispielen bemerk­bar macht. Nichts­des­to­trotz bie­ten sie, mei­ner Mei­nung nach, einen guten Ein­stieg und Über­blick über Python. Beson­ders der Linux-User-Einsteigerkurs und vor allem A Byte of Python haben sich beson­ders her­vor­ge­tan - durch eine leicht ver­ständ­li­che Erklä­rung der The­ma­tik. Das Open­book auf Gali­leo Com­pu­ting bie­tet zudem einen Über­blick über die Neue­run­gen von Python 3. Die­ser Ein­blick wird auf der eng­lisch­spra­chi­gen Refe­renz vertieft.

Mit dem Wer­zeug und Infor­ma­tio­nen aus­ge­rüs­tet, geht es nun an die eigent­lich Arbeit.

…to be continued

Geschrieben am 11.01.2009 von Sven in Aktuelles, Programmieren · 5 Kommentare
Weder Pings noch Kommentare sind erlaubt.

5 Komentare auf “Python - Die Ers­ten Schritte”

  1. apensiv sagt:

    Geany ist wirk­lich genial, benutze die Ent­wick­lungs­um­ge­bung selbst für Perl und Cpp-Skripte.
    Würde mich über wei­tere Stel­lungs­nah­men zu Python freuen Wink

    • Sven sagt:

      …habe jetzt die ers­ten Scripte damit geschrie­ben und bin nach wie vor von der Unter­stüt­zung und Hand­ha­bung begeis­tert. Das Ganze gilt übri­gens auch für Python unter Windows Evil

  2. Marco sagt:

    Hey Sven,
    ich kann die gedit als Edi­tor ans Herz legen. Auch sehr sim­pel und es gibt mehr und mei­ner Mei­nung nach bes­sere Plugins.
    Eine Bitte noch berich­test du auch über die Erfah­run­gen mit UNO?

    Rockige Grüße,
    Marco

    • Sven sagt:

      Gedit als Edi­tor ist mir natür­lich nicht unbe­kannt. Wenn’s dann aber schon ein Edi­tor sein sollte, dann würde ich eher zum Vim oder Kate grei­fen. Als KDE-Nutzer nehm ich dann schon lie­ber des­sen native Pro­gramme (kate) oder bleib gleich im Ter­mi­nal.
      Wenn ich die ers­ten UNO-Versuche (erfolg­reich) hin­ter mir habe, werde ich davon berich­ten. Bis­her kam ich aller­dings noch nicht bis zu die­ser Stelle Smile

  3. shureg sagt:

    Gedit finde ich auch ganz nett und wie Marco schon gesagt hat, gibts ja auch schon rela­tiv viele Plugins.
    Wenn ich zwi­schen Eclipse und Net­be­ans wäh­len sollte, bevor­zuge ich Eclipse. Aber ist ja auch Geschmacks­sa­che.
    Mit Python wollte ich mich auch mal aus­ein­an­der­set­zen, also würde mich über wei­tere Bei­träge freuenSmile


Diese Seite und ihr Inhalt unterliegen, sofern nicht anders gekennzeichnet, einer Creative Commons-Lizenz.
cclicense

Dieser Blog benutzt das großartige WordPress.

top