如何修复外星人入侵文件中pygame的ImportError“Library not loaded”?

问题描述

这是我的代码

import sys
import pygame

class AlienInvasion:
    """Overall class to manage game assets and behavior"""

    def __init__(self):
        """Initialize the game,and create game resources."""
        pygame.init()

        self.screen = pygame.display.set_mode((1200,800))
        pygame.display.set_caption("Alien Invasion")

    def run_game(self):
        """Start the main loop for the game"""
        while True:
            # Watch for keyboard and mouse events
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()

            # Make the most recently drawn screen visible
            pygame.display.flip()


if __name__ == '__main__':
    # Make a game instance and run the game
    ai = AlienInvasion()
    ai.run_game()

我已经通过 Mac 上的终端安装了 pygame。 当我尝试运行我的代码时,它给了我以下错误。 我期待一个空白的屏幕。 我尝试了 pip uninstall pygamepip install pygame,但是没有用。 如果有人可以提供帮助那就太好了。

Traceback (most recent call last):

 File "/Users/mycomputer/Desktop/python_work/alien_invasion.py",line 3,in <module>
   import pygame

 File "/Users/mycomputer/Library/Python/3.9/lib/python/site-packages/pygame/__init__.py",line 81,in  <module>

   from pygame.base import * # pylint: disable=wildcard-import; lgtm[py/polluting-import]
ImportError: dlopen(/Users/mycomputer/Library/Python/3.9/lib/python/site-packages/pygame/base.cpython-39-darwin.so,2): Library not loaded: /System/Library/Frameworks/Metal.framework/Versions/A/Metal

 Referenced from: /Users/mycomputer/Library/Python/3.9/lib/python/site-packages/pygame/base.cpython-39-darwin.so

 Reason: image not found

解决方法

您确实使用 pipbrew 卸载 pygame 并使用 brew 安装 pygame

pip uninstall pygame
brew uninstall pygame
brew install pygame