在pydev中使用wxPython时导入的未定义变量

时间:2010-01-26 23:40:21

标签: python eclipse wxpython pydev

我刚刚下载了wxPython,并且正在运行here中的一些示例程序。但是,在使用wx。*变量的每一行上,我得到一个“导入错误的未定义变量”

例如,以下程序在第1,4,8行产生五个错误,在第5行产生两个错误:

import wx
class MyFrame(wx.Frame):
    """ We simply derive a new class of Frame. """
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(200,100))
        self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
        self.Show(True)
app = wx.App(False)
frame = MyFrame(None, 'Small editor')
app.MainLoop()
然而,该程序编译和运行完美。我没有对pydev或eclipse做过任何重大修改,而且wxPython安装很新。

6 个答案:

答案 0 :(得分:40)

这发生在我身上。我已经安装了PyDev并对其进行了配置并继续我的快乐方式。几个月后,我安装了wxPython并遇到了同样的问题。一个简单的修复方法是在eclipse中:

窗口 - >偏好 - > Pydev - >口译员 - Python

只需删除默认解释器并添加一个新解释器(它可以与之前相同)。 Pydev / Eclipse搜索Python安装目录并为PYTHONPATH添加正确的路径。我重新开始,一切都很好。我注意到它添加了

C:\Python26\lib\site-packages\wx-2.8-msw-unicode

所以你可能只是将它添加到PYTHONPATH而不是完成上述所有操作,假设路径是安装此目录的地方。

顺便说一下,我正在使用:

  1. Eclipse Helios
  2. Pydev 1.6.2.2010090812
  3. Python 2.6
  4. wxPython2.8-win32-unicode-2.8.11.0-py26
  5. 但我认为这应该是解决问题的一般方法。

答案 1 :(得分:7)

PyDev在

中设置解释器时找到引用
Window -> Preferences -> Pydev -> Interpreter - Python

如果首次设置解释器时wxPython不在您的site-packages目录中,则编辑器查找功能将不知道对wx对象和名称的引用。要解决此问题,请从

中删除解释器
Window -> Preferences -> Pydev -> Interpreter - Python

然后选择新的。再次重新添加python安装,然后按apply。此时,Pydev将再次导入所有站点包对象,并应填充查找字典。您将需要重新启动Eclipse以进行更改。

答案 2 :(得分:3)

某些较新版本的pydev (大约在2010年1月) 很难跟踪导入的名称。它可能没什么。

如果仍然发生,请将错误报告给 aptana appcelerator,但毫无疑问他们已经知道了。

使用我刚刚下载的软件包时出现此问题,最终错误消失了。我最近的问题是在下载了pygame (大约在2010年1月) 之后。

修改

我已经修改了上面的答案,因为人们正在贬低它,我假设它是因为信息陈旧,或者因为appcelerator购买了aptana。我已经将Eclipse中的pydev用了将近2年,现在情况可能不同了。

答案 3 :(得分:3)

对错误文本使用CTRL+1组合键,并在相应行的末尾添加#@UndefinedVariable#@UnresolvedImport并显示错误,它会暂时删除这些警告。请参阅此答案:How do I fix PyDev "Undefined variable from import" errors?

答案 4 :(得分:3)

尝试

wx = wx

不要问为什么。这种方法(我试图在较小的部分中解决问题时发现)似乎只是删除了wx未定义的变量问题。

答案 5 :(得分:3)

#import  wx 
from    wx import wx #@UnresolvedImport

将会修复。