Неопределенная переменная из импорта при использовании wxPython в pydev - PullRequest
18 голосов
/ 27 января 2010

Я только что скачал 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 ]

40 голосов
/ 19 сентября 2010

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

Окно -> Настройки -> 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. Python 2.6
  4. wxPython2.8-win32-unicode-2.8.11.0-py26

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

7 голосов
/ 15 октября 2010

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

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

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

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

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

3 голосов
/ 28 августа 2010
#import  wx 
from    wx import wx #@UnresolvedImport

исправит.

3 голосов
/ 10 августа 2010

Попробуйте

WX = WX

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

3 голосов
/ 18 апреля 2010

Используйте комбинацию клавиш CTRL+1 в тексте ошибки и добавьте #@UndefinedVariable или #@UnresolvedImport в конце соответствующих строк с ошибками, эти предупреждения будут временно удалены. Смотрите этот ответ: Как исправить ошибки PyDev «Неопределенная переменная из импорта»?

3 голосов
/ 27 января 2010

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

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

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

Редактировать

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

...