Pygame崩溃了吗?

时间:2015-10-18 09:11:48

标签: python macos pygame

我现在一直在为AGES使用pygame,从来没有像这样引发错误。

Traceback (most recent call last):
  File "dodgeball.py", line 1, in <module>
    import pygame
  File "/Library/Python/2.7/site-packages/pygame/__init__.py", line 95, in <module>
from pygame.base import *
ImportError: dlopen(/Library/Python/2.7/site-packages/pygame/base.so, 2): Library not loaded: 
@executable_path/../Frameworks/SDL.framework/Versions/A/SDL
Referenced from: /Library/Python/2.7/site-packages/pygame/base.so
Reason: unsafe use of @executable_path in /Library/Python/2.7/site-packages/pygame/base.so with restricted binary

我被告知问题是多个SDL库,但我找不到任何重复的SDL库。

2 个答案:

答案 0 :(得分:5)

Apple已经引入了系统完整性保护,作为开发人员,我们可能需要禁用它。

  1. 重新启动计算机并按住Command + R直到屏幕上出现Apple徽标,将Mac重新启动到恢复模式。
  2. 点击实用工具&gt;终端
  3. 在“终端”窗口中,键入csrutil disable并按Enter键。
  4. 重新启动Mac。
  5. 所有功劳都归于:)&gt;&gt; https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection-sip-aka-rootless-on-max-os-x-el

答案 1 :(得分:2)

解决此问题的一种方法是禁用系统完整性保护,正如Amey所说,但更好的解决方法可能是在/usr/local/bin/python而不是/usr/bin/python重新安装python。

要执行此操作,您可以运行brew install python(这应该在/usr/local/bin中安装python并将PATH更改为/usr/local/bin/usr/bin之前)。在我的.zshrc中(.bashrc

应该相同)
export PATH=/usr/local/bin:$HOME/bin:$PATH

系统完整性保护不会将/usr/local标记为受限制,因此pygame不应再是受限制的二进制文件。