【问题标题】:Installing Pygame for Mac OS X 10.6.8为 Mac OS X 10.6.8 安装 Pygame
【发布时间】:2012-01-06 17:30:29
【问题描述】:

使用 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吗?

【问题讨论】:

    标签: python macos pygame


    【解决方案1】:

    线索在最后一行no matching architecture in universal wrapper。您很可能在 64 位系统上使用预编译的 32 位二进制文​​件。

    您可以尝试重新安装或从头开始编译,但强制 python 以 32 位运行可能会容易得多。更多信息over here in this post

    【讨论】:

    • 好吧,我改成了32位,但现在说pygame模块不存在。
    • 您是否尝试在更改架构后重新安装 PyGame?此外,您可能已经知道这一点,但请通过检查&gt;&gt;&gt; help('modules') 确保您使用了正确的模块名称和大小写。
    • 是的,我已经尝试重新安装它。它不会出现在模块列表中。我认为在终端中退出 python 后,python 会变回 64 位。有没有办法将其永久更改为 32 位模式?
    • 您可以尝试使用别名alias python='arch -i386 /usr/bin/python2.6',或者compile for 64bit?不知道这是否可行,但可能值得一试......
    • 你检查过你的 PYTHONPATH 吗?当我使用站点上的安装程序安装 pygame 时,它​​安装在非规范位置('/Library/Python/2.7/site-packages')
    【解决方案2】:

    我遇到了同样的问题。我有 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 导入不会引发错误。

    【讨论】:

    • 好吧,当然。你下载的 Python 版本是 32 位的,那为什么不行呢?这不是一个解决方案,而是一个“前进一步 - 后退两步”的解决方法......
    【解决方案3】:

    如果您不想弄乱系统文件,那么最简单的方法是重新安装 Python 2.7.2,但仅限 32 位版本。得到它here

    同时包含 64/32 位的 dmg 导致了这种混乱。

    【讨论】:

    • 下载的安装程序失败并出现错误“找不到要安装的软件”
    【解决方案4】:

    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' topython2.7`,下次启动 IDLE 或终端时,它将使用 32 位二进制.完成后改回来。

    您还可以从终端强制以 32 位模式启动 IDLE:

    $arch -i386 /Library/Frameworks/Python.framework/Versions/2.7/bin/idle2.7 -n

    您可以创建一个 shell 脚本 Automator 应用程序以使其更易于启动。

    【讨论】:

    • 运行 python2.7-32 解决了我的问题
    【解决方案5】:

    我建议使用像 PyCharm 这样的体面的 Python IDE。

    我已经从 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 使用这种方法工作......

    【讨论】:

      猜你喜欢
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 2012-01-08
      • 2012-04-14
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      相关资源
      最近更新 更多