在PyCharm中写"import pygame"时提示:没有名为pygame的模块(macOS)

0 投票
1 回答
8738 浏览
提问于 2025-04-18 02:19

一开始,我下载的pygame版本是:pygame-1.9.1release-python.org-32bit-py2.7-macosx10.3

然后在运行程序时,我遇到了一个错误信息:

The function `CGSFlushWindow' is obsolete and will be removed in an upcoming update.

于是我参考了这个链接的建议:Mac OS Pygame使用了一个过时的函数CGSFlushWindow

接着我下载了一个新的版本,链接是这里

但是现在又出现了一个新的错误:

Traceback (most recent call last):
  File "/Users/Crayon_277/Develop/Project/Pygame/my_pygame/my_pygame.py", line 3, in     <module>
    import pygame
ImportError: No module named pygame

我注意到pygame包在这个目录(A):/Library/Python/2.7/site-packages,而不是这个(B):/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

所以我尝试把它从A复制到B,但没有成功。

有人提醒我应该检查一下sys.path里是否包含pygame。结果我检查后发现是包含的。

那么我现在该怎么办呢?有没有人能帮我一下?

1 个回答

2

你的问题是,Python解释器找不到pygame这个包。这是因为你使用的解释器的site-packages里没有pygame这个包。

你可以通过在你实际使用的Python解释器的site-packages里创建一个egg-link文件来解决这个问题。egg-link文件其实就是一个普通的文本文件,里面写着一个路径,指向真正的包的位置。

这个路径可能像这样:

/Library/Python/2.7/site-packages/pygame

然后把它保存为pygame.egg-link,放在你的解释器的site-packages里,比如说:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

你也可以用一个.pth文件来做到这一点。.pth文件的作用“有点像”egg-link文件,里面也包含了应该搜索包的目录路径。创建一个这样的文件(起个好听的名字),放在site-packages里就可以了。

一步一步来

  • 创建一个普通的文本文件
  • /Library/Python/2.7/site-packages/XXXX里写下这一行,XXXX是存放pygame包的文件夹。
  • 把这个.pth文件保存到你的Python解释器的site-packages里,名字可以叫externals。这意味着完整路径应该是:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/externals.pth
  • 运行你的Python解释器,然后输入import pygame

撰写回答