import images Problem

Plattformunabhängige GUIs mit wxWidgets.
Antworten
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

Dienstag 30. Mai 2006, 12:10

Hallo @ all,
ich habe Python 2.4 und dazu das wxPython für Py2.4 (unicode) installiert.

Laut dem Buch "wxPython in Action" sollte import images funktionieren.
Ich bekomme jedoch folgenden Fehler:

>>> import images

Traceback (most recent call last):
File "<pyshell#0>", line 1, in -toplevel-
import images
ImportError: No module named images

Wo bekomme ich das images Modul her?

Gruss michael
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Dienstag 30. Mai 2006, 12:13

Hi de_master,
hier gibts die Lösung:
http://mail.python.org/pipermail/python ... 87146.html
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

Dienstag 30. Mai 2006, 12:38

Ich hab durch google rausgefunden das das images Modul in den Demos ist.

Durch deinen Tipp hab ichs nun hinbekommen. Einfach das images.py in den Lib Ordner kopieren.
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

Dienstag 30. Mai 2006, 12:44

Jedoch funktioniert das Programm nicht :( Weis jemand wesshalb? Hab ich genau so abgetippt wies im Buch steht :(

Folgender Code:

Code: Alles auswählen

import wx
import images

class ToolbarFrame(wx.Frame):

    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id, 'Toolbars', size = (300, 200))
        panel = wx.Panel(self)
        panel.SetBackgroundColour('White')
        statusBar = self.CreateStatusBar()
        toolbar = self.CreateToolBar()
        toolbar.AddSimpleTool(wx.NewId(), images.getNewBitmap(), "New", "Long help or 'New'")
        toolbar.Realize()
        menuBar = wx.MenuBar()

        menu1 = wx.Menu()
        menuBar.Append(menu1, "&File")

        menu2 = wx.Menu()
        menu2.Append(wx.NewId(), "&Copy", "Copy in status bar")
        menu2.Append(wx.NewId(), "C&ut", "")
        menu2.Append(wx.NewId(), "Paste", "")
        menu2.AppendSeparator()
        menu2.Append(wx.NewId(), "&Options...", "Display Options")
        
        menuBar.Append(menu2, "&Edit")
        self.SetMenuBar(menuBar)

if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = ToolbarFrame(parent = None, id = -1)
    frame.Show()
    app.MainLoop()
Folgende Fehlermeldung:
Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\Michael.Strecker\Desktop\PyTutFiles\statusBar.py", line 31, in -toplevel-
frame = ToolbarFrame(parent = None, id = -1)
File "C:\Dokumente und Einstellungen\Michael.Strecker\Desktop\PyTutFiles\statusBar.py", line 12, in __init__
toolbar.AddSimpleTool(wx.NewId(), images.getNewBitmap(), "New", "Long help or 'New'")
AttributeError: 'module' object has no attribute 'getNewBitmap'
>>>
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Dienstag 30. Mai 2006, 12:57

de_master hat geschrieben:Jedoch funktioniert das Programm nicht :( Weis jemand wesshalb? Hab ich genau so abgetippt wies im Buch steht :(
Hi de_master!

Das ist ein schlechtes Beispiel. Das hätte, meiner Meinung nach, nicht ins Buch gehört.

Die Funktion getNewBitmap() gibt es nicht. Vielleicht gab es sie Früher einmal. Aber Früher war die Demo, glaube ich, auch noch in wxPython integriert. Wenn du dieses Beispiel unbedingt zum Laufen bekommen möchtest, dann musst du auf das Modul "images.py" verzichten und dir selber ein paar Bilder laden.

Du könntest dir aber auch eine ältere "images.py" besorgen. Aber so wichtig wird dieses Beispiel ja nicht für dich sein, oder? ;-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

Dienstag 30. Mai 2006, 12:59

Aja oke. Dann lass ich das mal aus und probiers später wenn ich mit dem Buch durch bin.

Michael
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Dienstag 30. Mai 2006, 13:03

Fehler erkannt - Fehler gebannt :)
Anstatt

Code: Alles auswählen

import images
versuche mal

Code: Alles auswählen

from wx.lib import pydocview as images
Gruss
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Dienstag 30. Mai 2006, 14:59

pr0stAta hat geschrieben:Fehler erkannt - Fehler gebannt :)
Anstatt

Code: Alles auswählen

import images
versuche mal

Code: Alles auswählen

from wx.lib import pydocview as images
Gruss
Auf der Manning Website kann man sich die ganzen Beispiele runterladen.
Da gibt es auch das images.py unter Chapter2 Verzeichnis.

http://www.manning.com/rappin/

Source ist:
http://www.manning-source.com/books/rap ... in_src.zip


also images.py direkt enthält:

Code: Alles auswählen

#----------------------------------------------------------------------
# This file was generated by encode_bitmaps.py
#
from wx import ImageFromStream, BitmapFromImage
from wx import EmptyIcon
import cStringIO

def getNewData():
    return \
'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x0f\x08\x06\
\x00\x00\x00\xedsO/\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\
\x00YIDATx\x9c\xed\xd31\n@!\x0c\x03\xd0\xa4\xfe\xfb\xdfX\xe3\xf0\x97R\xa5(.\
\x0ef\x13\xe45\xa2\x92Vp\x92\xcf/\xd4\xaa\xb2\xcd\xb4\xc2\x14\x00\x00in\x90\
\x84ZUDl\xa9\xa7\xc3c\xcb-\x80\xfc\x87{d8B6=B\xdb\rfy\xc0\r\xc0\xf0\x0e\xfc\
\x1d\xaf\x84\xa7\xbf\xb1\x03\xe1,\x19&\x93\x9a\xd2\x97\x00\x00\x00\x00IEND\
\xaeB`\x82' 

def getNewBitmap():
    return BitmapFromImage(getNewImage())

def getNewImage():
    stream = cStringIO.StringIO(getNewData())
    return ImageFromStream(stream)

Interessant ist auch das Author Online Forum:


http://www.manning-sandbox.com/forum.jspa?forumID=202

Dort werden Bugs im Buch diskutiert und solche Anfrage kannst du auch stellen (wie hier mit deinem Problem mit images.py).

Gerold hat Recht, das Beispiel ist ein bisschen unglücklich gewählt.
Aber das beste ist ohnehin, den ganzen Source herunterzuladen.
kay2012
User
Beiträge: 14
Registriert: Montag 10. September 2012, 17:05

Sonntag 28. Oktober 2012, 19:23

Um das Problem zu lösen habe ich die images.py Datei in den Lib Ordner kopiert.
Dann das getNewBitmap gegen getPyBitmap ausgetauscht.

Scheint alternativ zu funktionieren.
Statt einem Ordner (wie im Buch) sieht man: ein Stück Torte. :lol:

Kein Witz !
Programmieranfänger

Bücher:
Python 3 - Das umfassende Handbuch (J.Ernesti, P. Kaiser - 3. akt. und erw. Auflage 2012) = ABSOLUTER MÜLL !!
wxpython in action (englisch)
Antworten