2010-10-15 3 views
3

Я использую Eclipse с PyDev (на Windows, разумеется) для моего проекта Python Tkinter около месяца, и до недавнего времени у меня не было жалоб. Я начинаю источник для одного модуля (мой GUI) следующим образом:Eclipse PyDev теперь показывает все ссылки на Tkinter как ошибки

from Tkinter import * 

Теперь, с тех пор, как я обновил Eclipse, чтобы 3.6.1, он показывает ошибку для каждого вызова модуля Tkinter (Frame(), Label(), Tk() , и т.д.). Я подумал, что во время обновления что-то пошло не так, поэтому я удалил Eclipse, перезагрузил его (Eclipse 3.6.1 Classic) и переустановил его. Затем, увидев, что это дало мне кучу ошибок с установкой PyDev, я удалил это, получил Eclipse 3.6.0 Classic, установил его и получил ту же проблему, которую я пытался исправить раньше.

Я не понимаю, что здесь не так. Для меня не имеет никакого смысла, почему внезапно Eclipse перестанет признавать, что я импортировал Tkinter.

Может ли кто-нибудь предложить любые предложения/ввод? Я действительно хочу придерживаться Eclipse, я очень доволен этим, но я не могу справиться с этим, давая мне около 200 ложных ошибок.

+0

Обычно это помогает, если при включении фразы «она показывает ошибку» в предложении вы выполните ее с фактическим сообщением об ошибке. –

+0

Это ошибка "undefined". Извините, подумал, что это было видно из остальной части моего вопроса :( –

ответ

5

Вы действительно не должны использовать дикий импорт. Рассмотрим вместо этого from Tkinter import Frame, Label или import Tkinter as tk.

Теперь к вашей проблеме: у меня тоже Eclipse Helios (3.6.0.v20100602). Проблема, которую вы описываете, явно связана с PyDev, а не с базовым проектом Eclipse. Я просто попробовал тот же импорт и не получил сообщений об ошибках. Например, моя версия PyDev также правильно извлекает docstring Frame.

Я думаю, что это всего лишь установка более новой версии PyDev (это решение для многих ошибок ^^) - добавьте «http://pydev.org/nightly» в качестве сайта обновления, а затем обновите до последней версии версия. Кстати, у меня есть версия 1.6.3.20100922. Если это не поможет, вы должны подумать о том, чтобы сообщить об этом как об ошибке.

+0

На тему дикого импорта --- Я использую практически каждый класс в Tkinter. Имеет смысл иметь дикий импорт. И при обновлении --- у меня был PyDev установленный с использованием функции сайтов обновлений. В любом случае, я попытаюсь использовать ночные сборки. –

+2

@Rafe Kettler: Я не согласен с тем, что это имеет смысл. Я думаю, что если вы сделаете «импортировать Tkinter как tk ... tk.Frame (...) «это делает ваш код более самодокументированным. Не возникает вопросов, когда вы вызываете функцию Tk, а когда нет. –

0

Я нашел ответ на такие проблемы, как обычно, что вы должны обновить свой pythonpath от eclipse. См. Мой вопрос answer. Я думаю, что повторная установка pydev и/или eclipse обычно решает эту проблему, потому что при этом pythonpath повторно настроен.

0

Какую версию Python вы используете? Если> 3.1 попробуйте (обратите внимание на строчную запись):

from tkinter import * 
Смежные вопросы