9

I am running Mac OS X Mountain Lion, with Python 2.7. I did a source install of Pyglet that seemed to go without errors, but any time I try to run a program I get a longish error that I don't understand. It sounds like it has something to do with QuickTime??

Every program I've tried gives the same error. The programs I have tried running are the examples that came in the source, and the example here: http://guzalexander.com/2012/08/17/playing-a-sound-with-python.html

The error I get says:

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
4

2 に答える 2

2

さらにグーグルで調べたところ、最終的にこのエラーに対処するページが見つかりました。どうやら問題は、Pyglet が 64 ビット アーキテクチャを好まないことです。これらの手順で修正されました:http://roguejs.com/2011-11-22/getting-pyglet-to-work-on-mac-osx-lion/

pyglet を Mac OSX Lion で動作させる

2011 年 11 月 22 日 by roguejs

Python でゲーム開発を始めたいと思っていて、そのために pyglet を使用したいと思っていて、Mac OSX Lion を使用している場合、おそらく次のエラーに遭遇するでしょう:

OSError: dlopen(/System/Library/Frameworks/QuickTime.framework/QuickTime, 6): 適切なイメージが見つかりません。/System/Library/Frameworks/QuickTime.framework/QuickTime: マッハオ、しかし間違ったアーキテクチャ /System/Library/Frameworks/QuickTime.framework/QuickTime: マッハオ、しかし間違ったアーキテクチャ 心配しないでください – これは単に64 ビット アーキテクチャでの pyglet 1.1.4 のチョーク (興味深いトリビア: Pyglet 1.1.4 は現在 Carbon API を使用していますが、Pyglet 1.2 は代わりに Cocoa を使用するように移植されることになっています)。

これを行う最も簡単な方法は、コンソールに次のように入力して、Python を強制的に 32 ビットにすることです。

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes ただし、安全のために、問題が見つかった場合に備えて、セットアップ手順全体を実行します。ここに行きます:

ステップ 1 – Mac に Mercurial をインストールする

Mercurial にアクセスして、Mac 用の最新のバイナリをダウンロードします。それをインストールしてから、ターミナルを開きます。

ステップ 2 – pyglet リポジトリのクローンを作成する

ディレクトリを作成し (私は ~/Projects/lib で作成しました)、そこに pyglet リポジトリをクローンします。

hg クローンhttps://pyglet.googlecode.com/hg/ pyglet

CDピグレット

ステップ 3 – ビルドする

このステップでは、オプションで cocoa-port ブランチに切り替えて試すことができます。しかし、私にはうまくいきませんでした。

オプション

hg チェックアウト ココア ポート

構築する

python setup.py インストール

ステップ 4 – Python を強制的に 32 ビットにする

完了したら、次のコマンドで python を強制的に 32 ビットにします。

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes 以上です!今すぐ pyglet アプリをビルドしてみてください。同じ例外が再度スローされることはありません。

于 2013-06-14T13:22:36.557 に答える