2013-06-14 7 views
9

私はMac OS X Mountain LionをPython 2.7で実行しています。私はPygletのソースインストールをエラーなしに行ったようでしたが、プログラムを実行しようとするたびに私は理解していない長いエラーが発生します。それはQuickTimeと関係があるようですね?Pygletを使用しようとしています - このエラーはどういう意味ですか?

私が試したすべてのプログラムで同じエラーが発生します。 http://guzalexander.com/2012/08/17/playing-a-sound-with-python.html

私が手にエラーが言う:私は実行しようとしたプログラムは、ソースに来た例、そしてここでの例です

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

@ user1740200の回答は解決策として受け入れられるべきだと私は思っています。 –

答えて

2

Iやったいくつかのより多くのグーグル、そして最終的にページを発見しましたこのエラーに対処します。明らかに問題はPygletが64ビットアーキテクチャを好まないということです。これらの命令は私のためにそれを修正: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

Pythonを32ビットに強制する必要はありません。以下の記事を参照してください。その間、 'pyglet'リポジトリにはMac OS Xのための修正が含まれている可能性があります。 –

10

を、私自身をインストール最高のトリックをしました。 http://twistedpairdevelopment.wordpress.com/2012/02/21/installing-pyglet-in-mac-os-x/

リポジトリから直接インストールするには、pipを使用しなければなりませんでした。

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

ジョブ完了。

+0

私のために働いています。 32ビットのPythonを強制する必要はありません。リポジトリの複製には時間がかかることに注意してください。これは 'pip'のように表示されます。あるいは、 'hg clone'でクローンし、' python setup.py install'を実行してください。 –

関連する問題