Неопределенная переменная из импорта при использовании wxPython в pydev
Я только что скачал 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 является новой.
6 ответов
Некоторым из более новых версий pydev (около января 2010 года) трудно отследить импортированные имена. Это, вероятно, ничего.
Если это все еще происходит, сообщите об ошибке в aptana appcelerator, хотя они, без сомнения, уже знают об этом.
У меня возникает эта проблема при работе с пакетами, которые я только что скачал, и в конечном итоге ошибки исчезают. Моя последняя проблема была после загрузки Pygame (около января 2010 года).
редактировать
Я изменил свой ответ выше, так как люди голосуют против него, и я предполагаю, что это потому, что информация устарела, или потому что appcelerator купил aptana. Я не использовал pydev с Eclipse почти 2 года, и сейчас ситуация может быть другой.
Это случилось со мной. Я установил PyDev, настроил его и пошел своим путем. Несколько месяцев спустя я установил wxPython, и у меня возникла такая же проблема. Самый простой способ исправить это затмение:
Окно -> Настройки -> Pydev -> Интерпретатор - Python
Просто удалите интерпретатор по умолчанию и добавьте новый (он может быть тем же, что и раньше). Pydev/Eclipse выполняет поиск в вашем каталоге установки Python и добавляет правильные пути к вашему PYTHONPATH. Я перезапустил и все было хорошо. Я заметил это добавил
C:\Python26\ Lib\ сайт-пакеты \ WX-2,8-ММЗ-юникода
Таким образом, вы могли бы просто добавить это в PYTHONPATH вместо того, чтобы проходить через все вышеперечисленное, предполагая, что этот путь находится там, где установлен этот каталог.
Кстати, я использую:
- Затмение Гелиос
- Pydev 1.6.2.2010090812
- Python 2.6
- wxPython2.8-win32-юникод-2.8.11.0-py26
Но я думаю, что это должно быть довольно общее решение проблемы.
PyDev находит ссылки при настройке интерпретатора в
Window -> Preferences -> Pydev -> Interpreter - Python
Если wxPython не был в каталоге вашего сайта-пакетов при первой настройке интерпретатора, то ссылки на объекты и имена wx не будут известны функции поиска редактора. Чтобы это исправить, удалите переводчик из
Window -> Preferences -> Pydev -> Interpreter - Python
и затем выберите новый. Снова добавьте установку python и нажмите "Применить". В это время Pydev снова импортирует все объекты пакета сайта и должен заполнить поисковый словарь. Вы захотите перезапустить Eclipse, чтобы изменения вступили в силу.
Пытаться
WX = WX
Не спрашивай почему. Этот подход (который я нашел, пытаясь разбить проблему на более мелкие части), похоже, просто устраняет проблему неопределенных переменных wx.
Использование CTRL+1
комбинация клавиш в тексте ошибки и добавление #@UndefinedVariable
или же #@UnresolvedImport
в конце соответствующих строк с ошибками эти предупреждения будут временно удалены. Смотрите этот ответ: Как я могу исправить ошибки PyDev "Неопределенная переменная из импорта"?