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

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

  1. Затмение Гелиос
  2. Pydev 1.6.2.2010090812
  3. Python 2.6
  4. 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 "Неопределенная переменная из импорта"?

#import  wx 
from    wx import wx #@UnresolvedImport

починю.

Другие вопросы по тегам