【发布时间】:2012-01-24 18:52:19
【问题描述】:
简而言之
在 Ubuntu 11.10 上,对于 pygame 库,pydev 报告“来自导入的未定义变量”。在 Windows 7 上,一切都很好。在两个平台上,代码都能正常工作。
这与this thread(和bunchofothers)的错误相同。删除和重新添加我的解释器并没有改变任何东西。我还尝试将 pygame 作为强制内置库包含在内,但它没有改变任何东西(我检查了 pygame 是否在系统 PYTHONPATH 中)。
配置
在 Ubuntu 和 Windows 上,我使用的是 Eclipse Indigo 和 Python 3.2。
在 Ubuntu 上,我正在使用:
- Ubuntu 11.10
- Pygame 1.9.2pre 编译自 pygame Hg 存储库。构建和安装后,site-packages/pygame 文件夹包含一堆 .so 和 .py 文件。
在 Windows7 上:
- Windows 7 专业版 SP1
- Pygame 1.9.2pre 来自lfd.uci.edu。 MSI 在 site-packages/pygame 文件夹中创建了一堆 .pyd 和 .py。
我了解静态分析无法进入 Ubuntu 上的 .so 文件。我也明白 Python 是一种动态语言。因此 pydev 具有静态分析固有的局限性。但是 Windows 7 上的 pydev 设法链接 .pyd 文件中的类,这些文件是动态库。为什么?我怎样才能让它在 Ubuntu 上运行?
提示?
import pygame
from pygame.locals import *
在 Ubuntu 中使用上面的代码,我可以 ctrl-click(或 f3)到 pygame 包,但不能到 pygame.locals。在 Windows 上,我可以同时访问两者。
import pygame
import pygame.locals
from pygame.locals import *
现在我可以访问 pygame.locals。我想这有助于 pydev 弄清楚“期望”什么,因为 locals.py 实际上存在于 site-packages/pygame 文件夹中。但我不想改变我所有的代码只是为了适应 pydev。
无论如何,下面的行在 Ubuntu 上仍然会引发“导入时未定义的变量”,但在 Windows 上不会。
except pygame.error:
PS:如果有帮助,我有一个 64 位的联想 T410,并安装了 64 位的所有东西。
【问题讨论】:
标签: eclipse windows-7 ubuntu pydev pygame