Undefined переменная из импорта при использовании wxPython в pydev - программирование

Undefined переменная из импорта при использовании wxPython в pydev

Я только что загрузил wxPython и запускал некоторые из примеров программ из здесь. Однако в каждой строке, использующей переменную из wx. *, Я получаю переменную "Undefined из ошибки импорта"

Например, следующая программа генерирует пять ошибок в строках 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 свежа.

4b9b3361

Ответ 1

Некоторые из новых версий pydev (около января 2010 года) имеют сложное отслеживание импортированных имен. Это, вероятно, ничего.

Если это все еще происходит, сообщите об ошибке для aptana appcelerator, хотя, несомненно, они уже знают о он.

Я получаю эту проблему при работе с пакетами, которые я недавно загрузил, и, в конце концов, ошибки уходят. Моя последняя проблема заключалась в загрузке pygame (около января 2010 года).

Edit

Я изменил свой ответ выше, потому что люди его ниспровергают, и я предполагаю, что информация устарела или потому, что аптекатор купил аптану. Я не использовал pydev с Eclipse почти 2 года, и ситуация может быть другой.

Ответ 2

Это случилось со мной. Я установил PyDev и настроил его, и пошел своим весельем. Несколько месяцев спустя я установил wxPython и имел ту же проблему. Легкий способ исправить в eclipse:

Окно → Настройки → Pydev → Interpreter - Python

Просто удалите интерпретатор по умолчанию и добавьте новый (он может быть тем же, который у вас был раньше). Pydev/Eclipse выполняет поиск в вашем каталоге установки Python и добавляет правильные пути к вашему PYTHONPATH. Я перезапустил, и все было хорошо. Я заметил, что он добавил

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

Итак, вы могли бы просто добавить это в PYTHONPATH вместо того, чтобы пройти все вышеперечисленное, предполагая, что путь указан в этом каталоге.

Кстати, я использую:

  • Eclipse Helios
  • Pydev 1.6.2.2010090812
  • Python 2.6
  • wxPython2.8-win32-unicode-2.8.11.0-py26

Но я думаю, что это должно быть довольно общее решение проблемы.

Ответ 3

PyDev находит ссылки при настройке интерпретатора в

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

Если wxPython не был в вашем каталоге пакетов сайтов при первой настройке интерпретатора, ссылки на объекты и имена wx не будут известны функции поиска редактора. Чтобы исправить это, удалите интерпретатор из

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

а затем выберите новый. Повторно добавьте установку python и нажмите Apply. В это время Pydev снова импортирует все объекты сайта-пакета и должен заполнить словарь поиска. Вы захотите перезапустить Eclipse, чтобы изменения произошли.

Ответ 5

Try

wx = wx

Не спрашивайте, почему. Такой подход (который я обнаружил при попытке разбить проблему на более мелкие части) просто удаляет проблему с переменными wx undefined.

Ответ 6

#import  wx 
from    wx import wx #@UnresolvedImport

будет исправлено.