如何在Eclipse中设置pygame?

3

编辑3: 其他信息: 我已经成功在Windows上运行Eclipse/pygame组合...但在MacOSX上没有。


编辑2: 从shell编译也可以。现在只是Eclipse的问题 :)

我在Eclipse中尝试过:

对于解释器,我使用自动配置,它建议使用/usr/bin/python作为解释器。然后对于PYTHONPATH,他建议所有默认的东西,然后我在其中添加了 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 以及其他内容。尽管我的代码中仍有未解决的"语法包"错误,但当我编译时,唯一的错误是没有适当的64位体系结构。

../Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so: no appropriate 64-bit architecture (see "man python" for running in 32-bit mode)


编辑: 现在我已经成功使import pygame在IDLE中实现,并初始化了pygame。我在Eclipse中添加了pygame路径到PYTHONPATH,但Eclipse报告了结构错误。


我希望能够在Eclipse、Pydev和Python 2.7中使用pygame。

首先,我下载并安装了Python 2.7.3。为了能够在一个IDE中工作,我在Eclipse上安装了Pydev。这一切都很顺利,我可以使用Pydev在Eclipse中工作,测试运行的程序没有问题。

然后我下载并安装了pygame。(pygame下载

现在当我尝试:

import pygame
pygame.init()

Eclipse告诉我:未解决的导入:pygame,当我尝试编译时,无论如何都会得到以下消息:

Traceback (most recent call last):
File "/Users/name/Documents/workspace/test_unit/main.py", line 6, in <module>
import pygame
ImportError: No module named pygame

同时,当我启动IDLE应用程序并尝试导入pygame时,会出现以下错误:
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import pygame
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-    packages/pygame/__init__.py", line 95, in <module>
from pygame.base import *
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-    packages/pygame/base.so, 2): no suitable image found.  Did find:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so: no matching architecture in universal wrapper

然而,如果我通过IDLE使用open Module...,然后打开pygame,就可以找到该模块。我错过了什么吗?

直接从命令提示符/ Bash shell执行Python...等并尝试导入Pygame。会发生什么? - Mike McMahon
Traceback (most recent call last): File "main.py", line 6, in <module> import pygame File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/__init__.py", line 95, in <module> from pygame.base import * ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so, 2): no suitable image found. Did find: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so: no matching architecture in universal wrapper - Philipp
这是我在执行 python main.py 后得到的结果,其中main.py仅包含以下代码:import pygamepygame.init() - Philipp
3个回答

4

好的,我找到了解决方法,让它能够工作。关键问题在于Eclipse选择了“错误”的解释器。对于正常的Python任务,Eclipse的选择很好,但是尝试编译pygame问题时会变得复杂,而且会出现架构错误。

所以我做了以下几步:

  1. 在此处下载并安装 Eclipse Classic 3.7.2 32位版。
  2. 为Eclipse安装pydev(具体指南请查看这里)
  3. 在此处下载并安装 Mac OS X 10.3 版本的 Python 2.7.3。
  4. 在此处下载并安装针对Python 2.7的Pygame 1.9.1 32位版本。

现在来到正确的解释器上。进入 Eclipse->Settings->PyDev->Interpreter - Python 并创建一个 New... 解释器。我使用的解释器位于 /Library/Frameworks/Python.framework/Versions/2.7/bin。只需选择链接到正确解释器的 python 别名即可。

现在确保您的pygame在PYTHONPATH中。只需在当前菜单的下半部分添加一个 New Folder,然后导航到pygame路径(默认路径为 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages)即可。


你也值得感谢,即使你的答案对我来说不太适用。但还是谢谢你尝试帮忙! - Philipp
不错,我也遇到了同样的问题。感谢您发布自己的解决方案! - Sebastian

0

阅读了您的三个编辑之后,似乎存在一个架构问题。由于PyGame不支持64位平台,因此在这种情况下,您需要选择32位python解释器。

转到Eclipse->Preferences->PyDev->Interpreters->Python Interpreter并添加一个新的32位python解释器。 32位python解释器的路径很可能与您通常的python解释器相同,只是文件名为“python2.7-32”而不是“python2.7”(如果python版本为2.7)。 对于我来说,它是:"/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-32"

设置完成后,您可以将其设置为默认解释器,或在使用PyGame时从Project->Properties->PyDev - Interpreter/Grammar中选择它。


0

在 Mac OS X 10.6.8 上安装 Pygame

建议你仔细阅读一下,看起来你可能正在尝试混合使用32/64位库。这可能需要你安装与开发环境匹配的正确版本的Python或Pygame。

我曾经在一个需要32位库的64位系统上遇到过这个问题。 解决方法是强制Python以32位模式运行。

强制其进入32位模式的解决方法包括在那个页面上

alias python='arch -i386 /usr/bin/python[version]'

其中version当然是你的版本。

如果你正在使用Windows,我认为你也可以采取类似的措施,但我不确定如何在Windows中创建别名命令。


我尝试了这个方法,不再出现“没有匹配的架构”错误。但是它找不到pygame模块,报错信息如下:Traceback (most recent call last): File "main.py", line 6, in <module> import pygame ImportError: No module named pygame - Philipp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接