Problem running Cairo demo

classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem running Cairo demo

Frank Millman
Hi all

I am trying to run the Cairo demo, and it crashes on msw and gtk2 (both
2.8.9.1-unicode). There is no Python traceback, but they both display
operating system dialogs saying the program has crashed.

I have traced it to the following line -

    face = wx.lib.wxcairo.FontFaceFromFont(
        wx.FFont(10, wx.SWISS, wx.FONTFLAG_BOLD))

If I place a 'return' before this line, it displays the images drawn up to
this point correctly (and beautifully!).

I moved wx.FFont(...) to a separate line, and that worked - IsOk() returns
True. So the problem seems to be with FontFaceFromFont().

Any suggestions will be appreciated.

Thanks

Frank Millman



_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

RE: Problem running Cairo demo

Frank Millman
Frank Millman wrote:

>
> Hi all
>
> I am trying to run the Cairo demo, and it crashes on msw and
> gtk2 (both
> 2.8.9.1-unicode). There is no Python traceback, but they both display
> operating system dialogs saying the program has crashed.
>
> I have traced it to the following line -
>
>     face = wx.lib.wxcairo.FontFaceFromFont(
>         wx.FFont(10, wx.SWISS, wx.FONTFLAG_BOLD))
>
> If I place a 'return' before this line, it displays the
> images drawn up to
> this point correctly (and beautifully!).
>
> I moved wx.FFont(...) to a separate line, and that worked -
> IsOk() returns
> True. So the problem seems to be with FontFaceFromFont().
>

Correction (msw) and extra info (gtk2) -

With msw, it does not fail on the line I mentioned, but a few lines further
down -

    ctx.show_text("Hello")

With gtk2, it does fail on the line I mentioned, but then I found I could
trace deeper by putting print statements in FontFaceFromFont() in
wxcairo.py. I can now report that it actually fails on the following line -

    fontface =
pycairoAPI.FontFace_FromFontFace(ctypes.c_void_p(fontfaceptr))

Frank

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem running Cairo demo

Andrea Gavana
In reply to this post by Frank Millman
Hi Frank,

On Wed, May 6, 2009 at 1:08 PM, Frank Millman wrote:

> Hi all
>
> I am trying to run the Cairo demo, and it crashes on msw and gtk2 (both
> 2.8.9.1-unicode). There is no Python traceback, but they both display
> operating system dialogs saying the program has crashed.
>
> I have traced it to the following line -
>
>    face = wx.lib.wxcairo.FontFaceFromFont(
>        wx.FFont(10, wx.SWISS, wx.FONTFLAG_BOLD))
>
> If I place a 'return' before this line, it displays the images drawn up to
> this point correctly (and beautifully!).
>
> I moved wx.FFont(...) to a separate line, and that worked - IsOk() returns
> True. So the problem seems to be with FontFaceFromFont().
>
> Any suggestions will be appreciated.

It works for me with wxPython 2.8.9.2 and beyond (all unicode), Python
2.5.2, Windows XP SP2.

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/
_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

RE: Problem running Cairo demo

Frank Millman
Andrea Gavana wrote:

>
> On Wed, May 6, 2009 at 1:08 PM, Frank Millman wrote:
> >
> > I am trying to run the Cairo demo, and it crashes on msw
> and gtk2 (both
> > 2.8.9.1-unicode). There is no Python traceback, but they
> both display
> > operating system dialogs saying the program has crashed.
>
> It works for me with wxPython 2.8.9.2 and beyond (all unicode), Python
> 2.5.2, Windows XP SP2.
>

Thanks for the feedback, Andrea.

This is how I installed pycairo -

1. Download pycairo-1.6.4.win32-py2.5.exe from wxpython.org/cairo and
install it into site-packages/cairo.

2. Download cairo_1.8.6-1_win32.zip, libpng_1.2.34-1_win32.zip, and
zlib123-dll.zip from gtk.org/download-windows.html.

3. Extract the dll's from the above zip files and copy them into the
site-packages/cairo folder.

Once I had done this, I could successfully 'import cairo' in a Python
interpreter.

Can you think of anything else I need to do?

My msw platform is wxPython 2.8.9.1, Python 2.5, Windows Server 2003.

Thanks

Frank

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem running Cairo demo

Dietmar Schwertberger-2
Hi Frank!

Frank Millman wrote:
> Can you think of anything else I need to do?

Not really.
I have the same result here, i.e. the demo is crashing at the same
position (block "Draw some text"), but working if I remove this block.

Are the other demos running OK for you?
I have crashes with some of them.

> My msw platform is wxPython 2.8.9.1, Python 2.5, Windows Server 2003.
I have here:
  wxPython 2.8.9.1
  Python 2.6.2
  pycairo-1.8.4
  cairo-1.8.6
  Windows Vista



The backtrace in Python:

wx.version: 2.8.9.2 (msw-unicode)
pid: 3412
Traceback (most recent call last):
   File "J:\Python\Python26\Doc\wxPython2.8 Docs and
Demos\demo\Cairo.py", line 2
8, in OnPaint
     self.Render(dc)
   File "J:\Python\Python26\Doc\wxPython2.8 Docs and
Demos\demo\Cairo.py", line 6
9, in Render
     wx.FFont(10, wx.SWISS, wx.FONTFLAG_BOLD))
   File
"J:\Python\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\lib\wxcairo.p
y", line 150, in FontFaceFromFont
     fontface = pycairoAPI.FontFace_FromFontFace(fontfaceptr)
WindowsError: exception: access violation writing 0x00000001


The backtrace in the post-mortem debugger:
 > 73425a6e()
  wxmsw28uh_core_vc.dll!02da5058()
  user32.dll!755004b4()
  user32.dll!75500511()
  user32.dll!75500528()
         ...


Strange enough, I get crashes also with other demos (also at
  wxmsw28uh_core_vc.dll!02da5058() ).


Regards,

Dietmar
_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem running Cairo demo

Robin Dunn
In reply to this post by Frank Millman
Frank Millman wrote:

> Andrea Gavana wrote:
>> On Wed, May 6, 2009 at 1:08 PM, Frank Millman wrote:
>>> I am trying to run the Cairo demo, and it crashes on msw
>> and gtk2 (both
>>> 2.8.9.1-unicode). There is no Python traceback, but they
>> both display
>>> operating system dialogs saying the program has crashed.
>> It works for me with wxPython 2.8.9.2 and beyond (all unicode), Python
>> 2.5.2, Windows XP SP2.
>>
>
> Thanks for the feedback, Andrea.
>
> This is how I installed pycairo -
>
> 1. Download pycairo-1.6.4.win32-py2.5.exe from wxpython.org/cairo and
> install it into site-packages/cairo.
>
> 2. Download cairo_1.8.6-1_win32.zip, libpng_1.2.34-1_win32.zip, and
> zlib123-dll.zip from gtk.org/download-windows.html.

If you can find a 1.6.4 version of Cairo then try that.  I'll try to
find some time to update the one I have installed and see if I can
figure out what is going on...


--
Robin Dunn
Software Craftsman
http://wxPython.org  Java give you jitters?  Relax with wxPython!

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

RE: Problem running Cairo demo

Frank Millman
Robin Dunn wrote:

> Frank Millman wrote:
> > This is how I installed pycairo -
> >
> > 1. Download pycairo-1.6.4.win32-py2.5.exe from
> wxpython.org/cairo and
> > install it into site-packages/cairo.
> >
> > 2. Download cairo_1.8.6-1_win32.zip, libpng_1.2.34-1_win32.zip, and
> > zlib123-dll.zip from gtk.org/download-windows.html.
>
> If you can find a 1.6.4 version of Cairo then try that.  I'll try to
> find some time to update the one I have installed and see if I can
> figure out what is going on...

I tried 1.6.4 Cairo. It still doesn't work, but it behaves marginally
better. On selecting the Cairo demo, the panel remains blank. I switch to
the 'Demo Code' tab, then back to the 'Demo' tab, and the first three shapes
appear, but not the text. The program is then locked, and I have to use Task
Manager to kill it.

Frank

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem running Cairo demo

Robin Dunn
Frank Millman wrote:

> Robin Dunn wrote:
>> Frank Millman wrote:
>>> This is how I installed pycairo -
>>>
>>> 1. Download pycairo-1.6.4.win32-py2.5.exe from
>> wxpython.org/cairo and
>>> install it into site-packages/cairo.
>>>
>>> 2. Download cairo_1.8.6-1_win32.zip, libpng_1.2.34-1_win32.zip, and
>>> zlib123-dll.zip from gtk.org/download-windows.html.
>> If you can find a 1.6.4 version of Cairo then try that.  I'll try to
>> find some time to update the one I have installed and see if I can
>> figure out what is going on...
>
> I tried 1.6.4 Cairo. It still doesn't work, but it behaves marginally
> better. On selecting the Cairo demo, the panel remains blank. I switch to
> the 'Demo Code' tab, then back to the 'Demo' tab, and the first three shapes
> appear, but not the text. The program is then locked, and I have to use Task
> Manager to kill it.

I've just checked in a fix to allow PyCairo/Cairo 1.8.[46] to work.  The
PyCairo folks made a non binary-compatible change to their exported C
API structure, such that when wxcairo tried to call the
FontFace_FromFontFace function it would actually use the wrong pointer
and make a call to some other location in memory.   The fix will be in
the 2.8.10.1 release coming soon or you can get the new wxcairo.py from
SVN and use that with previous releases.

However, if you really have pycairo 1.6.4 (and Cairo 1.6.4) installed
then I expect that the old code should work fine, since that version of
pycairo has a C API structure that matches what is in the wxcairo.py
module that you have.  You can double-check the versions from a python
shell:

  >>> import cairo
  >>> cairo.cairo_version_string()
  '1.8.6'
  >>> cairo.version_info
  (1, 8, 4)
  >>>

The first value is the version of Cairo, the 2nd is pycairo's version.



--
Robin Dunn
Software Craftsman
http://wxPython.org

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

RE: Problem running Cairo demo

Frank Millman
Robin Dunn wrote:

>
> I've just checked in a fix to allow PyCairo/Cairo 1.8.[46] to
> work.  The
> PyCairo folks made a non binary-compatible change to their exported C
> API structure, such that when wxcairo tried to call the
> FontFace_FromFontFace function it would actually use the
> wrong pointer
> and make a call to some other location in memory.   The fix
> will be in
> the 2.8.10.1 release coming soon or you can get the new
> wxcairo.py from
> SVN and use that with previous releases.
>
> However, if you really have pycairo 1.6.4 (and Cairo 1.6.4) installed
> then I expect that the old code should work fine, since that
> version of
> pycairo has a C API structure that matches what is in the wxcairo.py
> module that you have.  You can double-check the versions from
> a python
> shell:
>
>   >>> import cairo
>   >>> cairo.cairo_version_string()
>   '1.8.6'
>   >>> cairo.version_info
>   (1, 8, 4)
>   >>>
>
> The first value is the version of Cairo, the 2nd is pycairo's version.
>

Thanks, Robin.

I downloaded the new wxcairo.py ok.

I checked the versions, and pycairo is 1.6.4 - in fact I see on
wxpython.org/cairo that 1.8.6 was only uploaded on May 11th. I tried to get
the latest version, but now I get HTTP 403 Forbidden if I try to select any
of the files. Has something changed?

Frank

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem running Cairo demo

Robin Dunn
Frank Millman wrote:

> Robin Dunn wrote:
>> I've just checked in a fix to allow PyCairo/Cairo 1.8.[46] to
>> work.  The
>> PyCairo folks made a non binary-compatible change to their exported C
>> API structure, such that when wxcairo tried to call the
>> FontFace_FromFontFace function it would actually use the
>> wrong pointer
>> and make a call to some other location in memory.   The fix
>> will be in
>> the 2.8.10.1 release coming soon or you can get the new
>> wxcairo.py from
>> SVN and use that with previous releases.
>>
>> However, if you really have pycairo 1.6.4 (and Cairo 1.6.4) installed
>> then I expect that the old code should work fine, since that
>> version of
>> pycairo has a C API structure that matches what is in the wxcairo.py
>> module that you have.  You can double-check the versions from
>> a python
>> shell:
>>
>>   >>> import cairo
>>   >>> cairo.cairo_version_string()
>>   '1.8.6'
>>   >>> cairo.version_info
>>   (1, 8, 4)
>>   >>>
>>
>> The first value is the version of Cairo, the 2nd is pycairo's version.
>>
>
> Thanks, Robin.
>
> I downloaded the new wxcairo.py ok.
>
> I checked the versions, and pycairo is 1.6.4 - in fact I see on
> wxpython.org/cairo that 1.8.6 was only uploaded on May 11th. I tried to get
> the latest version, but now I get HTTP 403 Forbidden if I try to select any
> of the files. Has something changed?

Sorry, I just forgot to check the permissions on the files when I
uploaded the new binaries last night.


--
Robin Dunn
Software Craftsman
http://wxPython.org

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

RE: Problem running Cairo demo

Frank Millman
Robin Dunn wrote:

>
> Frank Millman wrote:
> > Robin Dunn wrote:
> >> You can double-check the versions from a python shell:
> >>
> >>   >>> import cairo
> >>   >>> cairo.cairo_version_string()
> >>   '1.8.6'
> >>   >>> cairo.version_info
> >>   (1, 8, 4)
> >>   >>>
> >>
> >> The first value is the version of Cairo, the 2nd is
> pycairo's version.
> >>
> >


Ok, I downloaded pycairo successfully, and I get the same values as shown
above in the interpreter.

The Cairo demo still does not run, but Cairo-snippets does, including the
text snippets. I compared the two, and then made a change to Cairo.py.

I replaced the lines

    face = wx.lib.wxcairo.FontFaceFromFont(
        wx.FFont(10, wx.SWISS, wx.FONTFLAG_BOLD))
    ctx.set_font_face(face)

with the following (copied from Cairo-snippets)

    ctx.select_font_face ("Sans", cairo.FONT_SLANT_NORMAL,
                 cairo.FONT_WEIGHT_BOLD)

With this change, Cairo.py runs without errors, and displays the text ok.

Hope this helps in finding the problem.

Frank

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem running Cairo demo

Robin Dunn
Frank Millman wrote:

> Robin Dunn wrote:
>> Frank Millman wrote:
>>> Robin Dunn wrote:
>>>> You can double-check the versions from a python shell:
>>>>
>>>>   >>> import cairo
>>>>   >>> cairo.cairo_version_string()
>>>>   '1.8.6'
>>>>   >>> cairo.version_info
>>>>   (1, 8, 4)
>>>>   >>>
>>>>
>>>> The first value is the version of Cairo, the 2nd is
>> pycairo's version.
>
>
> Ok, I downloaded pycairo successfully, and I get the same values as shown
> above in the interpreter.
>
> The Cairo demo still does not run, but Cairo-snippets does, including the
> text snippets. I compared the two, and then made a change to Cairo.py.
>
> I replaced the lines
>
>     face = wx.lib.wxcairo.FontFaceFromFont(
>         wx.FFont(10, wx.SWISS, wx.FONTFLAG_BOLD))
>     ctx.set_font_face(face)
>
> with the following (copied from Cairo-snippets)
>
>     ctx.select_font_face ("Sans", cairo.FONT_SLANT_NORMAL,
>                  cairo.FONT_WEIGHT_BOLD)
>
> With this change, Cairo.py runs without errors, and displays the text ok.

The problem with this approach is hinted at in the Cairo docs.  They say
that select_font_face is part of the "toy" font API, meaning that it is
okay as long as you just want to display some text and don't care much
what it looks like.  If you instead need to have any font precision, use
the exact font that was chosen in a wx.FontDialog, etc. then you need to
be able to convert from a wx.Font.

>
> Hope this helps in finding the problem.

Ok, let's make sure that there is not a problem with the font being
passed in.  Please edit wxcairo.py and add these print statements into
the wxMSW part of the code so it looks like this:

     elif 'wxMSW' in wx.PlatformInfo:
         fontfaceptr = voidp(
cairoLib.cairo_win32_font_face_create_for_hfont(
             int(font.GetHFONT())) )
         print font.Ok()
         print font.GetHFONT(), int(font.GetHFONT())
         print fontfaceptr
         fontface = pycairoAPI.FontFace_FromFontFace(fontfaceptr)

And let me know what was printed.


--
Robin Dunn
Software Craftsman
http://wxPython.org

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

RE: Problem running Cairo demo

Frank Millman
Robin Dunn wrote:

>
> Ok, let's make sure that there is not a problem with the font being
> passed in.  Please edit wxcairo.py and add these print
> statements into
> the wxMSW part of the code so it looks like this:
>
>      elif 'wxMSW' in wx.PlatformInfo:
>          fontfaceptr = voidp(
> cairoLib.cairo_win32_font_face_create_for_hfont(
>              int(font.GetHFONT())) )
>          print font.Ok()
>          print font.GetHFONT(), int(font.GetHFONT())
>          print fontfaceptr
>          fontface = pycairoAPI.FontFace_FromFontFace(fontfaceptr)
>
> And let me know what was printed.
>

Here is the result -

True
<Swig Object of type 'void *' at 0x80a0973> 134875507
c_void_p(9592568)
cairo_win32_scaled_font_select_font:SelectObject: The operation completed
successfully.
Traceback (most recent call last):
  File "Cairo.py", line 31, in OnPaint
    self.Render(dc)
  File "Cairo.py", line 77, in Render
    ctx.show_text("Hello")
MemoryError

I have not seen the last few lines before, as I normally run the demo
without a console. Hopefully this will provide a clue.

Frank

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

RE: Problem running Cairo demo

Frank Millman
Frank Millman wrote:

>
> Robin Dunn wrote:
> >
> > Ok, let's make sure that there is not a problem with the font being
> > passed in.  Please edit wxcairo.py and add these print
> > statements into
> > the wxMSW part of the code so it looks like this:
> >
> >      elif 'wxMSW' in wx.PlatformInfo:
> >          fontfaceptr = voidp(
> > cairoLib.cairo_win32_font_face_create_for_hfont(
> >              int(font.GetHFONT())) )
> >          print font.Ok()
> >          print font.GetHFONT(), int(font.GetHFONT())
> >          print fontfaceptr
> >          fontface = pycairoAPI.FontFace_FromFontFace(fontfaceptr)
> >
> > And let me know what was printed.
> >
>
> Here is the result -
>
> True
> <Swig Object of type 'void *' at 0x80a0973> 134875507
> c_void_p(9592568)
> cairo_win32_scaled_font_select_font:SelectObject: The
> operation completed
> successfully.
> Traceback (most recent call last):
>   File "Cairo.py", line 31, in OnPaint
>     self.Render(dc)
>   File "Cairo.py", line 77, in Render
>     ctx.show_text("Hello")
> MemoryError
>
> I have not seen the last few lines before, as I normally run the demo
> without a console. Hopefully this will provide a clue.
>

I have now tried the Cairo demo using 2.8.10.1, and unfortunately I still
have problems. Both msw and gtk2 display the shapes correctly, but fail when
it comes to the text.

On msw, it goes straight to a 'crash' dialog, asking if I would like to
select a debugger. No traceback in the console at all.

On gtk2, it starts by displaying the shapes and the text correctly, but if I
try to resize the window, it crashes straight away, again with no traceback.

Adding the print messages as shown above has the same result as before - the
three lines print as expected without showing any problems.

To confirm, my msw platform is Windows Server 2003 R2 with 704mb ram
(according to System Properties), Python 2.6.1, wxPython 2.8.10.1. My gtk2
platform is Fedora 10 (can't remember the ram, but maybe 512mb), Python
2.6.1, wxPython 2.8.10.1.

Frank

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Reply | Threaded
Open this post in threaded view
|

Re: Problem running Cairo demo

Robin Dunn
Frank Millman wrote:

> Frank Millman wrote:
>> Robin Dunn wrote:
>>> Ok, let's make sure that there is not a problem with the font being
>>> passed in.  Please edit wxcairo.py and add these print
>>> statements into
>>> the wxMSW part of the code so it looks like this:
>>>
>>>      elif 'wxMSW' in wx.PlatformInfo:
>>>          fontfaceptr = voidp(
>>> cairoLib.cairo_win32_font_face_create_for_hfont(
>>>              int(font.GetHFONT())) )
>>>          print font.Ok()
>>>          print font.GetHFONT(), int(font.GetHFONT())
>>>          print fontfaceptr
>>>          fontface = pycairoAPI.FontFace_FromFontFace(fontfaceptr)
>>>
>>> And let me know what was printed.
>>>
>> Here is the result -
>>
>> True
>> <Swig Object of type 'void *' at 0x80a0973> 134875507
>> c_void_p(9592568)
>> cairo_win32_scaled_font_select_font:SelectObject: The
>> operation completed
>> successfully.
>> Traceback (most recent call last):
>>   File "Cairo.py", line 31, in OnPaint
>>     self.Render(dc)
>>   File "Cairo.py", line 77, in Render
>>     ctx.show_text("Hello")
>> MemoryError
>>
>> I have not seen the last few lines before, as I normally run the demo
>> without a console. Hopefully this will provide a clue.
>>
>
> I have now tried the Cairo demo using 2.8.10.1, and unfortunately I still
> have problems. Both msw and gtk2 display the shapes correctly, but fail when
> it comes to the text.
>
> On msw, it goes straight to a 'crash' dialog, asking if I would like to
> select a debugger. No traceback in the console at all.
>
> On gtk2, it starts by displaying the shapes and the text correctly, but if I
> try to resize the window, it crashes straight away, again with no traceback.
>
> Adding the print messages as shown above has the same result as before - the
> three lines print as expected without showing any problems.
>
> To confirm, my msw platform is Windows Server 2003 R2 with 704mb ram
> (according to System Properties), Python 2.6.1, wxPython 2.8.10.1. My gtk2
> platform is Fedora 10 (can't remember the ram, but maybe 512mb), Python
> 2.6.1, wxPython 2.8.10.1.

Sorry, I don't know what to suggest at this point.  I'm unable to induce
any problems like this after the updates that I did.

--
Robin Dunn
Software Craftsman
http://wxPython.org

_______________________________________________
wxpython-users mailing list
[hidden email]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users