【问题标题】:It seems I have an rpath issue Installing pygame on OSX El Capitan 10.11看来我有一个 rpath 问题在 OSX El Capitan 10.11 上安装 pygame
【发布时间】:2026-02-07 03:05:02
【问题描述】:

我下载了最新的 pygame 1.9.1 源码。首先我设置了以下环境变量:

export CC='/usr/bin/gcc'
export CFLAGS='-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -I/opt/X11/include -arch i386 -arch x86_64'
export LDFLAGS='-arch i386 -arch x86_64'
export ARCHFLAGS='-arch i386 -arch x86_64'

然后,在 SDL.framework Headers 中,我将它们全部复制到一个名为 SDL 的子文件夹中,以处理 pygame 源中硬路径中的一些问题。设置这些东西似乎让我到了建造的地步。而且,安装运行良好。但是,当我尝试导入 pygame 时,我得到以下信息。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/pygame-1.9.1release-py2.7-macosx-10.11-intel.egg/pygame/__init__.py", line 95, in <module>
    from pygame.base import *
ImportError: dlopen(/Library/Python/2.7/site-packages/pygame-1.9.1release-py2.7-macosx-10.11-intel.egg/pygame/base.so, 2): Library not loaded: @rpath/SDL.framework/Versions/A/SDL
  Referenced from: /Library/Python/2.7/site-packages/pygame-1.9.1release-py2.7-macosx-10.11-intel.egg/pygame/base.so
  Reason: image not found

假设 rpath 是正确的,在指定的位置肯定有一个 SDL 可执行文件。但是,可能不正确,如何检查rpath。

【问题讨论】:

    标签: python macos pygame sdl osx-elcapitan


    【解决方案1】:

    按照此处描述的过程进行安装没有问题: http://kidscancode.org/blog/2015/09/pygame_install/

    虽然这使用自制软件来安装所有库,但如果你有它们,你应该能够使用以下方法安装 pygame:

    $ pip3 install hg+http://bitbucket.org/pygame/pygame
    

    但是,请注意 Pygame 在 El Capitan 下存在许多问题,如下所述: https://bitbucket.org/pygame/pygame/issues/284/max-osx-el-capitan-using-the-deprecated

    最糟糕的是图形无法正确渲染。优胜美地的情况并非如此。

    编辑:

    根据此处的讨论,这似乎是 SDL 问题而不是 Pygame 问题: Rendering Glitch on Mac OSX El Capitan with OpenGL

    我将看看是否可以测试将 SDL_image 从 1.2.12 降级到 1.2.10 以确认。

    【讨论】:

    • 我们有很多 python 2 代码不会很快更新,因为我们还有其他包依赖项是 python 2,所以我已经更新了我的问题,使其更具体。不过,我非常希望在 SDL_image 测试后看到您的问题更新。
    • 是的,因为这是 SDL_image 的问题,所以 Python 2 中也存在图形问题(刚刚尝试过)。降级测试还没有运气,因为它导致我陷入依赖问题。当我有更多时间时,可能不得不尝试新的 El Cap 副本。
    【解决方案2】:

    1) 首先,如果您使用的是 El Capitan,您需要添加对 /usr/local 的 root 访问权限:

    sudo su
    chown -R $USER /usr/local
    

    2)然后安装自制软件:http://brew.sh/(安装 ruby​​,如果没有的话)

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    3) 之后,使用 homebrew 安装 pygame:

    sudo brew install homebrew/python/pygame
    

    为我工作:)

    【讨论】: