Eclipse Pydev“;“从导入中取消定义变量”;在Ubunutu而不是Windows上使用pygame 简而言之
在Ubuntu11.10上,对于pygame库,pydev报告“来自导入的未定义变量”。在Windows7上,一切正常。在这两种平台上,代码都能正常工作 这与(和a)的错误相同。删除并重新添加我的解释器并没有改变任何事情。我还尝试将pygame作为一个强制的内置库,但它没有改变任何东西(我检查了pygame是否在系统PYTHONPATH中) 配置 在Ubuntu和Windows上,我都使用EclipseIndigo和Python3.2 在Ubuntu上,我使用: Ubuntu 11.10Eclipse Pydev“;“从导入中取消定义变量”;在Ubunutu而不是Windows上使用pygame 简而言之,eclipse,windows-7,ubuntu,pydev,pygame,Eclipse,Windows 7,Ubuntu,Pydev,Pygame,在Ubuntu11.10上,对于pygame库,pydev报告“来自导入的未定义变量”。在Windows7上,一切正常。在这两种平台上,代码都能正常工作 这与(和a)的错误相同。删除并重新添加我的解释器并没有改变任何事情。我还尝试将pygame作为一个强制的内置库,但它没有改变任何东西(我检查了pygame是否在系统PYTHONPATH中) 配置 在Ubuntu和Windows上,我都使用EclipseIndigo和Python3.2 在Ubuntu上,我使用: Ubuntu 11.10 Pyg
import pygame
import pygame.locals
from pygame.locals import *
现在我可以去pygame.locals了。我想这有助于pydev了解“期望”什么,因为locals.py实际上存在于site packages/pygame文件夹中。但我不想为了适应pydev而更改所有代码
无论如何,下面这行代码在Ubuntu上仍然会引发“undefined variable from import”,但在Windows上不会
except pygame.error:
PS:如果有帮助的话,我有一台64位的联想T410,并且安装了所有64位的设备。我刚刚在Ubuntu上测试了它,它似乎对我来说工作正常。。。您能否发布以下内容来帮助您解决此问题: 1。如果您添加了“pygame”,请将其从强制内置中删除(此特定用例不需要它…通过查看其结构,静态分析器似乎能够正确处理它,因此pygame中的.so文件将由shell自动处理,因此,无需显式处理它) 2。具有以下功能的程序:
import sys
print '\n'.join(sorted(sys.path))
import pygame.locals
print pygame
print pygame.locals
当您从PyDev启动它时,它给您的输出是什么?(我很想知道pygame的完整路径,它是否会在运行时抛出ImportTerror,以及您的完整PYTHONPATH)
3。您的错误日志中有错误吗?(PyDev能够内省.so文件,但它将启动一个单独的python shell并通过套接字与之通信,因此,可能有什么东西在阻止它)。感谢您的帮助:-)我制作了一个新的PyDev项目,其中包含您的程序。我从强制内置中删除了pygame。您的程序输出:
/home/tho/.eclipse/org.eclipse.platform_3.7.0_155965261/plugins/org.python.pydev.debug_2.3.0.2011121518/pysrc/home/tho/workspace/test/src/home/tho/workspace/test/src/usr/local/lib/python3.2/usr/local/lib/dynload/usr/local/plat-linux3/usr/local/python3.2/site/usr/local/lib/python32.zip。。。。。。。。。。然后,在from pygame.base import*ImportError:libSDL-1.2.so.0:无法打开共享对象文件:错误日志中没有这样的文件或目录
错误:就PyDev而言,看到那些截图的链接:看起来错误在你的pygame编译中。。。(因为导入失败)有什么原因你没有直接从ubuntu获得这个吗?(例如:删除编译并执行sudo apt get install python pygame之类的操作。注意:我现在不在Linux上,因此包名可能会有点不同,尤其是在python 3上).Ah如果这个问题不涉及pydev,而是涉及编译pygame,那么我很抱歉浪费了您的时间:/apt get只有pygame for python2.6(Ubuntu11.11上的默认python)。我按照老师的指示去做。我将重新安装pygame,仔细检查编译错误(尽管我安装pygame时没有发现任何错误),然后再与您联系。
import sys
print '\n'.join(sorted(sys.path))
import pygame.locals
print pygame
print pygame.locals