MacPorts を使用して Mac OS X 10.7.4 に pyglet をインストールしました。
pyglet は 32 ビット アーキテクチャ用にビルドされた場合にのみ機能するため、使用するには、次のようにコマンド ラインから python を実行する必要があります。
arch -i386 /opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
そして、pyglet の「hello world」プログラムを正常に実行できます。
ただし、Eclipse で PyDev を使用したいのですが、Python を 32 ビット プロセスとして実行するように PyDev を構成する方法がわかりません。
MacPorts python を追加しました。
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
Python インタープリターとして ([設定] > [Pydev] > [インタープリター - Python])。新しいプロジェクトを作成し、MacPorts python をプロジェクトのインタープリターとして設定しました。しかし、このプロジェクト内からpyglet の「hello world」プログラムを実行すると、次のエラーが発生します。
pydev debugger: starting
Traceback (most recent call last):
File "/Applications/eclipse/plugins/org.python.pydev.debug_1.6.2.2010090812/pysrc/pydevd.py", line 1145, in <module>
debugger.run(setup['file'], None, None)
File "/Applications/eclipse/plugins/org.python.pydev.debug_1.6.2.2010090812/pysrc/pydevd.py", line 916, in run
execfile(file, globals, locals) #execute the script
File "/Users/andrewfogg/Dropbox/EnvironmentalArt/src/art.py", line 2, in <module>
window = pyglet.window.Window()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/__init__.py", line 306, in __getattr__
__import__(import_name)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/window/__init__.py", line 1669, in <module>
from pyglet.window.carbon import CarbonPlatform, CarbonWindow
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/window/carbon/__init__.py", line 69, in <module>
framework='/System/Library/Frameworks/QuickTime.framework')
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/lib.py", line 90, in load_library
return self.load_framework(kwargs['framework'])
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/lib.py", line 226, in load_framework
lib = ctypes.cdll.LoadLibrary(realpath)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ctypes/__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/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
これは、PyDev が python を 64 ビット プロセスとして実行していることを示しています。
Pythonインタープリターで環境変数を設定できることがわかります(設定> Pydev>インタープリター-Python>環境)が、これを正しく構成する方法がわかりません(試しました)。
問題は、PyDev で python を 32 ビット プロセスとして実行するにはどうすればよいかということです。