在PyCharm中写"import pygame"时提示:没有名为pygame的模块(macOS)
一开始,我下载的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 个回答
你的问题是,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