2013-06-14 5 views
9

Je cours Mac OS X Mountain Lion, avec Python 2.7. J'ai fait une installation source de Pyglet qui semblait fonctionner sans erreur, mais chaque fois que j'essaye d'exécuter un programme, j'obtiens une erreur longue que je ne comprends pas. Il semble que cela a quelque chose à voir avec QuickTime ?? Chaque programme que j'ai essayé donne la même erreur.Essayer d'utiliser Pyglet - que signifie cette erreur?

Les programmes que j'ai essayé de courir sont les exemples qui sont venus dans la source, et l'exemple ici: http://guzalexander.com/2012/08/17/playing-a-sound-with-python.html

L'erreur que je reçois dit:

File "examples/media_player.py", line 44, in <module> 
from pyglet.gl import * 
File "/Library/Python/2.7/site-packages/pyglet/gl/__init__.py", line 510, in <module> 
    import pyglet.window 
    File "/Library/Python/2.7/site-packages/pyglet/window/__init__.py", line 1669, in <module> 
    from pyglet.window.carbon import CarbonPlatform, CarbonWindow 
    File "/Library/Python/2.7/site-packages/pyglet/window/carbon/__init__.py", line 69, in <module> 
    framework='/System/Library/Frameworks/QuickTime.framework') 
    File "/Library/Python/2.7/site-packages/pyglet/lib.py", line 90, in load_library 
    return self.load_framework(kwargs['framework']) 
    File "/Library/Python/2.7/site-packages/pyglet/lib.py", line 226, in load_framework 
    lib = ctypes.cdll.LoadLibrary(realpath) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 431, in LoadLibrary 
    return self._dlltype(name) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 353, in __init__ 
    self._handle = _dlopen(self._name, mode) 
OSError: dlopen(/System/Library/Frameworks/QuickTime.framework/QuickTime, 6): no suitable image found. Did find: 
    /System/Library/Frameworks/QuickTime.framework/QuickTime: mach-o, but wrong architecture 
    /System/Library/Frameworks/QuickTime.framework/QuickTime: mach-o, but wrong architecture 
+1

Je pense que la réponse de @ user1740200 mérite d'être acceptée comme solution, car elle fonctionne actuellement. –

Répondre

2

je l'ai fait un peu plus googler, et a finalement trouvé une page corrige cette erreur Apparemment, le problème est que Pyglet n'aime pas les architectures 64 bits. Ces instructions fixes pour moi: http://roguejs.com/2011-11-22/getting-pyglet-to-work-on-mac-osx-lion/

Getting pyglet to work on Mac OSX Lion

November 22, 2011 by roguejs

For those of you who wanted to start doing game development in Python and wanted to use pyglet for it, and you’re using Mac OSX Lion, you’ll most probably come across this error:

OSError: dlopen(/System/Library/Frameworks/QuickTime.framework/QuickTime, 6): no suitable image found. Did find: /System/Library/Frameworks/QuickTime.framework/QuickTime: mach-o, but wrong architecture /System/Library/Frameworks/QuickTime.framework/QuickTime: mach-o, but wrong architecture Do not fret – this is merely pyglet 1.1.4 choking on 64-bit architectures (interesting trivia: Pyglet 1.1.4 is currently using the Carbon API, while Pyglet 1.2 is supposed to be ported over to use Cocoa instead).

The easiest way to do this is to force python to go 32bit by typing this in your console:

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes However, just to be safe, I’m going to go through the entire setup steps in case you find any problems with it. Here goes:

Step 1 – install Mercurial in your Mac

Go to Mercurial and download the latest binary for your Mac. Install it, and then open the terminal.

Step 2 – clone the pyglet repository

Create a directory (I did mine in ~/Projects/lib), and clone the pyglet repository into it:

hg clone https://pyglet.googlecode.com/hg/ pyglet

cd pyglet

Step 3 – build it

Now in this step, you can optionally switch to the cocoa-port branch and try it out. Didn’t work for me though.

Optional

hg checkout cocoa-port

Build it

python setup.py install

Step 4 – Force python into 32-bits

Once you’re done, force python into 32 bits with this command:

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes And that’s it! Try building your pyglet app now – they shouldn’t throw the same exception again.

+0

Forcer python à 32 bits n'est pas nécessaire, voir le message ci-dessous. Il se peut que le référentiel 'pyglet' comprenne un correctif pendant ce temps pour Mac OS X. –

10

similaires ci-dessus, l'installation de mon propre fait l'affaire mieux. J'ai adapté les instructions que j'ai trouvées sur ce site: http://twistedpairdevelopment.wordpress.com/2012/02/21/installing-pyglet-in-mac-os-x/

Tout ce que j'avais à faire était d'utiliser pip pour installer directement à partir du dépôt.

pip install hg+ https://pyglet.googlecode.com/hg/

Travail terminé.

+0

Travaillé pour moi aussi. Pas besoin de forcer Python 32 bits. Notez que le clonage du référentiel peut prendre un certain temps, ce qui ressemble à une interruption de pip. Vous pouvez aussi cloner avec 'hg clone' et ensuite' python setup.py install'. –