使用Python 3.2.2导入pygame模块时遇到问题

1 投票
2 回答
1320 浏览
提问于 2025-04-17 09:19

我一直在尝试在我的MacBook 10.6上让pygame模块与python3一起工作。我听说这有点麻烦,所以我按照这些说明从源代码安装:http://programming.itcarlow.ie/PyGameInstall.pdf。一切都很顺利,但当我尝试导入pygame时,出现了这个错误:

Python 3.2.2 (v3.2.2:137e45f15c0b, Sep  3 2011, 17:28:59) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/pygame/__init__.py", line 95, in <module>
    from pygame.base import *
ImportError: dynamic module does not define init function (PyInit_base)

我完全不知道这是什么意思。我进行了常规安装,使用python 2.7时一切正常,但我想要一些python3的功能。你们觉得这里出了什么问题吗?

2 个回答

1

Python 3.x系列和2.x系列之间不兼容,也就是说你不能直接用2.x的代码在3.x上运行。因此,你需要找到适合Python 3.x的pygame版本(或者可以通过一个叫2_to_3的脚本来转换,不过我不确定这个脚本是否也适用于C语言的代码)。那么,你为什么不想使用Python 2.7呢?

2

我看到这个问题是因为我也遇到了同样的挑战。我发现Python 3.2.x版本在使用pygame这个包时有个bug。我想要的是带pygame的Python 3.x版本。于是我卸载了Python 3.2.3,然后重新安装了Python 3.1.4,接着安装了pygame-1.91.win32-py3.1.msi,现在一切都正常了。

撰写回答