17

我刚刚下载了 wxPython,并从这里运行了一些示例程序。但是,在使用 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 安装是全新的。

4

6 回答 6

40

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

窗口 -> 首选项 -> Pydev -> 解释器 - Python

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

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

因此,您可能只需将其添加到 PYTHONPATH 中,而不是执行上述所有操作,假设该路径是该目录的安装位置。

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

  1. 日食太阳神
  2. Pydev 1.6.2.2010090812
  3. 蟒蛇2.6
  4. wxPython2.8-win32-unicode-2.8.11.0-py26

但我认为这应该是解决问题的一个非常普遍的解决方案。

于 2010-09-18T22:59:21.743 回答
7

当您设置解释器时,PyDev 会找到引用

Window -> Preferences -> Pydev -> Interpreter - Python

如果在您第一次设置解释器时 wxPython 不在您的站点包目录中,那么编辑器查找函数将不知道对 wx 对象和名称的引用。要解决此问题,请从

Window -> Preferences -> Pydev -> Interpreter - Python

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

于 2010-10-15T19:48:58.687 回答
3

一些较新版本的 pydev (大约 2010 年 1 月)很难追踪导入的名称。大概没什么。

如果这种情况仍然存在,请将错误报告给aptana appcelerator,尽管毫无疑问他们已经知道了。

我在使用我最近下载的包时遇到了这个问题,最终错误消失了。我最近的问题是在下载 pygame (大约 2010 年 1 月)之后。

编辑

我已经修改了上面的答案,因为人们不赞成它,我假设这是因为信息过时,或者因为 appcelerator 购买了 aptana。我已经有将近 2 年没有在 Eclipse 中使用 pydev 了,现在情况可能有所不同。

于 2010-01-26T23:42:01.833 回答
3

CTRL+1在错误文本上使用组合键并在有错误的相应行的末尾添加#@UndefinedVariable#@UnresolvedImport,它将暂时删除这些警告。请参阅此答案:如何修复 PyDev“导入中的未定义变量”错误?

于 2010-04-18T12:48:31.927 回答
3

尝试

wx = wx

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

于 2010-08-10T10:17:40.423 回答
3
#import  wx 
from    wx import wx #@UnresolvedImport

将修复。

于 2010-08-28T12:25:38.250 回答