Hi folks,

For whatever reason, the pyglet package is getting a lot of attention on 
c.l.python these past few days.  I am guilty of generating some of that 
potentially off-topic conversation myself.  At the end of my last thread, I 
reported that I had found the pyglet-users newsgroup, and would direct my 
questions there.

https://groups.google.com/d/msg/comp.lang.python/ARtI0GC9RHc/_6URRrhz7nUJ

Well, I joined pyglet-users.  I have waited for about 36 hours for the 
moderator to approve my first post asking for help.  Several other posts have 
appeared, but not mine.  I don't think that I was impolite.

Apologies to everyone, but I'm going to ask my questions here.  As you may 
recall, I'm teaching some adolescent computer programming students.  I need a 
Python 3-compatible GUI, preferably one oriented towards games.  I might have 
that GUI in hand, but I need to test it myself first.  I've been researching 
this issue for over a week.  I have a student tomorrow, so I'm facing a bit of 
a deadline.  (Yeah, I could teach him about B-trees instead, but... you know, 
kids.)

In my own defense, I'm not entirely certain that the problems I have 
encountered are specific to pyglet.  They might have to do with the limitations 
of the 2to3 program.

I'm starting with my own Ubuntu 13.04 system.  I downloaded pyglet-1.2alpha1, 
unzipped it and executed "sudo python3 setup.py install", as I have done with 
many a package.  Then I tried running various programs in two directories 
(these programs are also on the pyglet.org web site).

pyglet-1.2alpha1/examples/programming_guide/hello_world.py runs fine.

pyglet-1.2alpha1/examples/programming_guide/image_viewer.py also runs fine.

pyglet-1.2alpha1/examples/programming_guide/animation.py produces an error.  
Here's the traceback.

=======================================================

Traceback (most recent call last):
  File "/usr/local/lib/python3.3/dist-packages/pyglet/resource.py", line 538, 
in animation
    identity = self._cached_animations[name]
  File "/usr/lib/python3.3/weakref.py", line 69, in __getitem__
    o = self.data[key]()
KeyError: 'dinosaur.gif'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "animation.py", line 62, in <module>
    animation = pyglet.resource.animation('dinosaur.gif')
  File "/usr/local/lib/python3.3/dist-packages/pyglet/resource.py", line 540, 
in animation
    animation = pyglet.image.load_animation(name, self.file(name))
  File "/usr/local/lib/python3.3/dist-packages/pyglet/image/__init__.py", line 
2425, in load_animation
    raise first_exception  
  File "/usr/local/lib/python3.3/dist-packages/pyglet/image/__init__.py", line 
2417, in load_animation
    image = decoder.decode_animation(file, filename)
  File 
"/usr/local/lib/python3.3/dist-packages/pyglet/image/codecs/gdkpixbuf2.py", 
line 121, in decode_animation
    gif_stream = gif.read(file)
  File "/usr/local/lib/python3.3/dist-packages/pyglet/image/codecs/gif.py", 
line 85, in read
    raise ImageDecodeException('Not a GIF stream')
pyglet.image.codecs.ImageDecodeException: Not a GIF stream

=======================================================

>From earlier discussions, I know that distutils automatically executes 2to3 on 
>the pyglet core module, when you invoke pyglet's setup.py file from Python 3.  
>The setup script does not appear to run 2to3 on the code outside of the 
>package itself.  And while I doubted that the KeyError I saw above was a 
>Python 2/3 compatibility issue, I tried running 2to3 on animation.py anyway.  
>2to3 seems to agree with me, reporting back "RefactoringTool: No files need to 
>be modified."

Finally, I got errors when trying to run pyglet-1.2alpha1/tests/test.py.  At 
first, it looked like the fix would be easy:

=======================================================

File "tests/test.py", line 274
  print '-' * 78
          ^
SyntaxError: invalid syntax

=======================================================

Clearly this was a problem for 2to3, so I ran it on test.py.  It corrected that 
one print statement, and nothing else.  Then I ran test.py again.  This time I 
got a deeper problem:

=======================================================

Traceback (most recent call last):
  File "test.py", line 215, in <module>
    import tests.regression
  File "../tests/regression/__init__.py", line 11, in <module>
    from pyglet.image import get_buffer_manager
  File "../pyglet/__init__.py", line 276
    print '[%d] %s%s %s' % (thread, indent, name, location)
                       ^
SyntaxError: invalid syntax

=======================================================

This error suggests that, during the build and install process, 2to3 left some 
code uncorrected in pyglet/__init__.py.  This has me worried.  Could there be 
other code that 2to3 failed to correct?  I don't want to offer my students a 
tool, only to have it crash on them.

So, there you have it, the two errors that I am encountering.  If anyone has 
any advice, I would appreciate it.  Thanks!
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to