使用Python 2.7.2。当我尝试导入pygame时,我收到此错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/__init__.py", line 95, in <module>
from pygame.base import *
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so, 2): no suitable image found. Did find:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so: no matching architecture in universal wrapper
我不确定这意味着什么。我应该自己编译pygame吗?
答案 0 :(得分:32)
Python 2.7.3 .dmg Mac OS安装程序在以下位置安装64位和32位二进制文件:
/Library/Frameworks/Python.framework/Versions/2.7/bin/
该文件夹中有一个名为python2.7-32
的32位二进制文件。
要在终端中使用它,只需输入$ python2.7-32
而不是python
要在IDLE中使用它,只需将64位python2.7
二进制文件重命名为python2.7-64
,然后重命名python2.7-32' to
python2.7`,下次启动IDLE或终端时它将使用32位二进制文件。完成后将其更改回来。
您还可以从终端强制以32位模式启动IDLE:
$ arch -i386 /Library/Frameworks/Python.framework/Versions/2.7/bin/idle2.7 -n
您可以创建一个shell脚本Automator应用程序,以便更容易启动。
答案 1 :(得分:3)
线索在最后一行no matching architecture in universal wrapper
。您最有可能在64位系统上使用预编译的32位二进制文件。
您可以尝试从头开始重新安装或编译,但强制python以32位运行可能要容易得多。还有更多信息over here in this post。
答案 2 :(得分:0)
我遇到了同样的问题。我有Python 2.7.2,OSX 10.6的安装版本。以下是我要解决的问题:
1)从应用程序文件夹和/Library/Frameworks/Python.framework中删除了我当前的Python安装(我刚删除了2.7.2,仅剩下3.2)
2)重新安装了Python 2.7.2,OSX 10.3的安装版本(我的pygame安装文件标记为OSX 10.3,这促使我朝这个方向发展)
3)重新安装了pygame
现在pygame导入而不会抛出错误。
答案 3 :(得分:0)
如果您不想搞乱系统文件,那么最简单的方法是重新安装Python 2.7.2但仅限32位版本。得到它here。
包含64/32位的dmg导致了这个混乱。
答案 4 :(得分:0)
我建议使用一个不错的Python IDE,比如PyCharm。
我已经从python.org安装了3.3(x64),3.3(x86)和2.7.6两种架构。
我所要做的就是为每个设置一个解释器配置,我可以按项目级别选择项目。
对我而言,这是顺利进行Python开发的明确方法,与Python Mangling和手动变通方法相对应。
PyCharm IDE的社区版本甚至像啤酒一样免费!在JetBrains Site
处了解一下在Windows,Linux和OS X上使用和行为都是一件轻而易举的事。 它还充当包管理器,因此您可以直接从IDE安装不同的组件,并使用不同的配置运行控制台会话。它还可以让您轻松设置virtualenv。
足够的宣传!去试试吧。
是的,我让PyGame使用这种方法......