Pythonmania

Script Different!

Suchen in:
Suche:
In Partnerschaft mit Amazon.de
Startseite | Schockwellenreiter | Impressum
Anzeigen


Daily Link Icon Donnerstag, den 27. Juli 2006
Spaß mit der Python Image Library

Die Python Image Library (PIL) ist für Bildverarbeitung und Bildmanipualtion so etwas wie der Standard unter Python. Als ich mir neulich eine aktuelle Version herunterlud, erlebte ich eine Überraschung. Die Funktion im_object.show(), die bisher nur unter UNIX funktionierte (sie rief dort xv auf), funktioniert nun auch unter Mac OS X. Sie lädt einfach das Bild in die Vorschau, Apples eigenem kleinen Bild- und PDF-Viewer.

A picture named screenshotPIL.jpg

OK, für eine echte Anwendung übergibt man das Bild zur Darstellung sicher besser einem GUI-Tool (wie hier am Beispiel wxPython gezeigt), aber um sich schnell mal etwas anzuschauen oder für Debugging-Zwecke ist das eine nützliche Funktion.

[Anmerkung]: Wenn man sich PIL von der schon häufiger erwähnten MacPython Packages-Seite von Bob Ippolito runterlädt und an einer Maschine sitzt, die mehr als einen Administrator hat, kann man Image nicht importieren. Irgendwie setzt der Installer an solchen Maschinen die Rechte falsch: Man muß dann mindestens in

/Library/Frameworks/Python.framework/Versions/2.4/lib
/python2.4/site-packages/PIL/
in meinem Fall sogar in
/Library/Frameworks/Python.framework/Versions/2.4/lib
/python2.4/site-packages/
die Rechte neu setzen. Aber das ist hoffentlich nur eine vorübergehende Unannehmlichkeit.

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Schlangenspaß mit der West Side Story

Raymond Hettinger im Python-Kochbuch: Data Mining with Neural Nets. [Daily Python-URL! (from the Secret Labs)]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Noch mehr Schlangenfraß...

im Big Nerd Ranch Weblog: Experiments with Python, PyObjC, and Cocoa. Ausdrucken! [Peter van I. per Email.]

Dort gefunden: iCalendar package for Python. »The iCalendar package is a parser/generator of iCalendar files for use with Python. It follows the RFC 2445 (iCalendar) specification

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | | Python

Python und das Sommerloch

Das Ungeheuer von Loch Ness ist in diesem Jahr noch nicht aufgetaucht, dafür aber eine Python in einer rheinischen Postfiliale.

Python Icon, Photo: Gabriele Kantel

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | | Python

Daily Link Icon Mittwoch, den 26. Juli 2006
Die Schlange in Leipzig

Python Icon, Photo: Gabriele Kantel Das Ungeheuer von Loch Ness ist in diesem Jahr noch nicht wieder aufgetaucht, wohl aber die Schlange in Leipzig: Am 8. September findet in Leipzig der Workshop »Python im deutschsprachigen Raum« statt. Der Workshop ist als Ergänzung zu den internationalen und europäischen Python-Zusammenkünften gedacht. Die Themenpalette der Vorträge ist sehr weit gefaßt und soll alles einschließen, was mit Python im deutschsprachigen Raum zu tun hat. Vorträge können bis zum 31. Juli angemeldet werden. [Daily Python-URL! (from the Secret Labs)]

Posted by Jörg Kantel | Permalink | | | Python

Daily Link Icon Dienstag, den 25. Juli 2006
Die Schmetterlingskurve

In diesem Sommer sind sehr viele Schmetterlinge zu beobachten. Was liegt daher näher, als meine Tests der matplotlib mit einer »Schmetterlingskurve« fortzusetzen. Diese wird nach folgender Formel berechnet:

Formel

Sie ist eine meiner Standard-Test-Formeln, ich hatte sie schon einmal für (das leider obsolet gewordene) MacPerl wie auch für die graphische Ausgabe mit Python und Tkinter verwendet. Wenn man sich dort die Scripte anschaut, ist das Script für die Ausgabe mit der matplotlib von genialer Kürze:


#! /usr/local/bin/pythonw
from pylab import *

theta = arange (0.0, 75.39, 0.02)
r = exp(cos(theta)) - 2*cos(4*theta) + sin(theta/12)**5
x = r*sin(theta)
y = r*cos(theta)

plot(x,y)
show()

Erst wird der Vektor theta mit den Werten von 0 bis 75,39 in der Schrittweite von 0,02 gefüllt. Danach wird ein zweiter Vektor r mit der Ergebnis obiger Formel für den jeweiligen theta-Wert erstellt. Ein dritter und vierter Vektor wandeln die Koordinaten in Polarkoordinaten um, die dann gezeichnet werden. Diese Schreibweise ist natürlich viel mathematischer (und auch einleuchtender) als die Iteration über eine Schleifenvariable. Ich denke daher, daß die matplotlib sich auch im Schulunterricht gut einsetzen läßt.

Screenshot

Damit der Schmetterling aufrecht steht, habe ich gegenüber der »normalen« Dartstellung die x- und y-Koordinaten vertauscht.

[Und noch eine Ergänzung]: Die matplotlib versteht sich nicht nur mit numarray, sondern auch mit dem (neueren?) NumPy. Das kann (und sollte) man ebenfalls von Bob Ippolitos MacPython Package Seite herunterladen.

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Update

Zope 2.9.4 ist draußen. Langsam wird's eng bis zur 3. [Zope.org]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Daily Link Icon Montag, den 24. Juli 2006
Python, die Alternative zu Matlab?

Sicher nicht in allen Fällen, aber die Kombination der beiden (Open Source) Python-Module numarray und matplotlib decken doch schon eine große Bandbreite ab. Sie sind einfach zu bedienen, in der Regel hinreichend schnell und machen Spaß.

Screenshot

Für Mac OS X gilt: Wenn man sich die Module von Bob Ippolitos Package Site für Universal Python 2.4 herunterlädt, hat man — vorausgesetzt, man hat auch Universal Python 2.4 installiert (auch auf dieser Seite erhältlich) — ein Paket, daß auch auf den neuen Intel-Macs native läuft. Zu beachten ist lediglich:

  1. Bobs Package Manager installiert sein (Universal-) Python in /usr/local/bin/ und läßt so das »Original«-Python von Apple (in /usr/bin/) unangetastet.
  2. matplotlib bringt sein eingenes GUI mit (funktioniert aber auch mit wxPython und Tkinter), wie alle GUI-Programme unter Python muß es mit pythonw gestartet werden und läuft auch nicht in der MacPython IDE.

Dann könnt Ihr loslegen, denn Mathematik macht Spaß! Grins

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Daily Link Icon Freitag, den 21. Juli 2006
Installing Django on MacOS X (development version)

Rhonabwy: »Yep, step by step. I took the easiest possible track for installation—installing with SQLite support. Not what you’d probably want to do for any sort of production world, but lovely for quick development.« [Ranchero]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Daily Link Icon Donnerstag, den 20. Juli 2006
Atom mit der Schlange

Implementing the Atom Publishing Protocol: »Joe Gregorio's latest Restful Web column implements the Atom Publishing Protocol as a Python (Icon Icon Icon) web service using WSGI (Icon Icon Icon).« Natürlich ausdrucken! [Meerkat: An Open Wire Service: O'Reilly Network]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Auch auf SpOn ist mal ein Python-Artikel

Python Icon, Photo: Gabriele Kantel Not- Operation: Python frißt Heizdecke: Eine Pythonschlange im US-Bundesstaat Idaho hat etwas extrem schwer Verdauliches verschlungen: eine Heizdecke, Queen-Size, samt Kabel und Bedieneinheit. Zwei Tierärzte kämpften stundenlang um das Leben des Tieres. [Spiegel Online]

Und das Ungeheuer von Loch Ness ist in diesem Jahr auch noch nicht aufgetaucht, aber dafür eine Python im Neckar. [SZOn-Blog]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | | Python

Daily Link Icon Mittwoch, den 19. Juli 2006
wxPython Tutorial (3): Wir laden ein Bild

Book Cover Es wird Zeit, daß ich mein wxPython-Tutorial fortsetze [1] [2]. Heute möchte ich zeigen, wie man in wxPython ein Bild in ein Fenster lädt. Dazu definieren wir uns — wie in nahezu jedem wxPython-Programm, erst einmal einen Frame, der das Bild enthalten soll. Dieses Bild wird dort auch schon geladen. Man merkt dann deutlich an, daß das wx-Toolkit seine Wurzeln in Unix unter X hat, denn um das Bild anzuzeigen, benötigt es dieses als eine (X-) Bitmap. Dies kann uns jedoch egal sein, da die Methode ConvertToBitmap() dies für uns erledigt.

Dann erstellen wir eine Klasse PaintWindow, die wir von wxWindow ableiten. Diese Terminologie ist ein wenig gewöhnungsbedürftig: Ein Window ist in der wx-Terminologie das, was in anderen GUI-Toolkits ein Widget ist. Was wir gemeinhin unter Window verstehen, entspricht im wx-Jargon eher einem Frame. Beim Initialisieren der Klasse legen wir fest, daß unsere Methode OnPaint() immer dann aufgerufen wird, wenn unser Fenster ein Paint-Event verschickt. Die Methode OnPaint() zeichnet einfach das Bild.

Hier nun der Quelltext:


#! /usr/bin/pythonw
import wx
filename = "/Users/kantel/Documents/lorrain6.jpg"

class TestFrame(wx.Frame):
  def __init__(self):
    wx.Frame.__init__(self, None, title="Das Urteil 
        des Paris", size=(702, 546))
    img = wx.Image(filename)
    win = PaintWindow(self, img)

class PaintWindow(wx.Window):
  def __init__(self, parent, image):
    wx.Window.__init__(self, parent)
    self.pic = image.ConvertToBitmap()
    self.Bind(wx.EVT_PAINT, self.OnPaint)

  def OnPaint(self, evt):
    dc = wx.PaintDC(self)
    dc.Clear()
    dc.DrawBitmap(self.pic, 1, 1, True)

if __name__ == "__main__":
  app = wx.PySimpleApp()
  frm = TestFrame()
  frm.Show()
  app.MainLoop()

Bei der Festlegung der Rahmengröß müssen wir darauf achten, daß oben etwa 22 Pixel für die Titelleiste des Rahmens mit eingerechnet werden müssen. Der Rest folgt altbekanntem Schema: Wenn das Modul als eigenständiges Programm läuft, dann wird eine Instanz von PySimpleApp() initialisiert, dann eine Instanz unseres Frames. Dieser Frame wird angezeigt und dann geht das wxPython-Programm in seine MainLoop und wartet auf den User-Input. Im Endeffekt sieht das dann so aus (Klick für eine Vergrößerung):

Screenshot

Wir können den Rahmen beliebig vergrößern oder verkleinern, das Bild wird immer korrekt neu gezeichnet. Da wir noch keine eigene Exit-Routine festgelegt haben, beendet sich das Programm nach dem Schließen des Fensters.

Ist doch einfach, oder?

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | | Python

Daily Link Icon Dienstag, den 18. Juli 2006
Noch ein Update: Blender 2.42

A picture named blender.png Heute ist Update-Tag im Schockwellenreiter: Die freie 3D-Software Blender (GPL) ist nun in der Version 2.42 verfügbar und soll sich damit besonders für professionelle 3D- und Videoarbeit eignen, versprechen die Entwickler. Die neue Blender-Ausgabe bietet unter anderem eine neue Render-Pipeline und einen überarbeiteten Sequenzeditor. Viele der neuen Funktionen wurden speziell für die Macher des freien Films Elephants Dream (wir berichteten) in Blender integriert. [Golem.de]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

wxPython 2.6.3.3 ist draußen

Python Icon, Photo: Gabriele Kantel Laut Ankündigung ist es in der Hauptsache ein Bugfix-Release. Hier gibt es den Download und hier das Changelog. [Daily Python-URL! (from the Secret Labs)]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | | Python

Daily Link Icon Montag, den 17. Juli 2006
Zope-Sicherheitsupdate

Zope Icon Zope 2.8.8 Released. Correcting an important security vulnerability. [Zope.org]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Daily Link Icon Donnerstag, den 13. Juli 2006
Django kommt unter die Räder

Python Web frameworks, Part 2: Web development with TurboGears and Python: »In this second article of a two-part series, we demonstrate TurboGears, another open source MVC-style Web application framework based on Python. Where the first article was an introduction to the Django framework, this article shows how to use TurboGears to create a Web-based shopping application and concludes with a comparison between Turbogears and Django.« Ausdrucken! Beide Artikel! [Daily Python-URL! (from the Secret Labs)]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Google kauft einen der Plone-Gründer ein

Einer der Plone-Gründer, Alexander Limi, wechselt im Oktober zu Google und soll dort an der Benutzeroberfläche für Plone 3.0 weiterarbeiten. [netzpolitik.org]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | |

Daily Link Icon Freitag, den 7. Juli 2006
Die Schlange umklammert

Das ist abgefahren: CLPython »is an implementation of the Python programming language in Common Lisp. It is developed by Willem Broekema with support from Franz Inc. CLPython is released under the LLGPL.« [Lambda the Ultimate - The Programming Languages Weblog - Join today!]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | | Python

Daily Link Icon Donnerstag, den 6. Juli 2006
GTK+ Update

GUI-Toolkit GTK+ 2.10 erschienen: Das plattformübergreifende freie Toolkit zur Erstellung grafischer Bedienoberflächen, GTK+, steht in Version 2.10.0 zum Download bereit. Das GUI-Toolkit, das ursprünglich für die Bildbearbeitungssoftware GIMP entwickelt wurde und daher auch seinen Namen - Gimp Toolkit - hat, ist inzwischen die Basis vieler grafischen Anwendungen. Und die Python-Bindings gibt es hier: PyGTK: GTK+ für Python. [heise online news]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | | Python

Daily Link Icon Mittwoch, den 5. Juli 2006
PyGTK und Threads und Podcasts und die Schlange

Jeremy Jones: PyGTK and Threading: »I’ve been working on wrapping PyGTK (Icon Icon Icon) around a podcast grabbing Python script that I wrote. You can take a glance at the code that actually does the work here[OnLamp.com]

Technorati-Tags:

Posted by Jörg Kantel | Permalink | | | Python




Werbung: