#python #eclipse #pyqt4 #pydev #python-2.7
#python #eclipse #pyqt4 #pydev #python-2.7
Вопрос:
Я использую Eclipse 3.7.1 с последней надстройкой PyDev для кодирования на Python. Я использую PyQt4. В верхней части моего файла у меня есть:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
Кроме того, у меня есть дерево PyQt4, включенное в список Project Explorer. Однако eclipse по-прежнему считает, что имена, подобные QMainWindow, не определены. Код выполняется нормально. Как я могу заставить eclipse распознавать эти имена.
Спасибо
Ответ №1:
PyQt на самом деле является оболочкой библиотек C Qt. Таким образом, они не .py
файлы, и PyDev не может проанализировать их, чтобы получить, что в них. Вам нужно добавить PyQt4
на вкладку Принудительные сборки, чтобы PyDev мог использовать оболочку Python для «просмотра» этих библиотек и знать, что в них находится. Это также приведет к завершению кода для PyQt.
Кроме того, обычно это не очень хорошая практика для использования from foo import *
. Вы будете импортировать все внутри своего пространства имен, и вы не будете знать, что откуда поступает. Более того, у вас могут быть конфликты имен, которые маскируют друг друга. Хотя это маловероятно с PyQt, все же я бы посоветовал вам привыкнуть к from PyQt4 import QtGui, QtCore
и ссылаться на такие классы, как QtGui.QMainWindow
.
Комментарии:
1. Спасибо, Аварис. Ваше решение сработало хорошо и имеет смысл. Я также ценю напоминание о хорошем стиле программирования на Python. Часто бывает так, что те, кто выступает за хороший стиль, столкнулись с недостатками несоблюдения его, то есть они знают, в чем боль.
Ответ №2:
иногда случается, что PyDev теряет разум… Если перезапуск Eclipse не помогает, подумайте о том, чтобы сделать это:
Нажмите на кнопку «Применить» и выберите свой интерпретатор python. Это должно заставить Eclipse восстановить существующие библиотеки.
Комментарии:
1. Спасибо за идеи, однако он был постоянным во многих перезапусках. У коллеги такая же проблема. Я заново настроил интерпретатор и даже добавил site-packages PyQt4 в отдельную папку на нижней панели, которую вы изобразили.