PyQt - QtDeclarative проблемы с импортом
Я использую Ubuntu 10.10, и я установил PyQt 4.7.4 через apt-get.
Я создаю GUI-макет с помощью QtDesigner и компилирую.ui-файл в.py, используя pyuic4.
Затем я создаю подкласс автоматически сгенерированного класса и реализую конструктор подкласса. Я вызываю setupUi(), а затем получаю следующую ошибку и трассировку стека:
$ python src/gui/main_window.py
Traceback (most recent call last):
File "src/gui/main_window.py", line 2, in <module>
from ui_main_window import Ui_MainWindow
File "/home/dmass/sandbox/test/src/gui/ui_main_window.py", line 694, in <module>
from QtDeclarative.QDeclarativeView import QDeclarativeView
ImportError: No module named QtDeclarative.QDeclarativeView
Кроме того, когда коллега компилирует файл.ui в.py, используя pyuic4 из установки PyQt 4.8.3 в Windows, я получаю следующую ошибку:
$ python src/gui/main_window.py
Traceback (most recent call last):
File "src/gui/main_window.py", line 2, in <module>
from ui_main_window import Ui_MainWindow
File "/home/dmass/sandbox/test/src/gui/ui_main_window.py", line 705, in <module>
from PyQt4 import QtDeclarative
ImportError: cannot import name QtDeclarative
Похоже, что QtDeclarative не был установлен (или не там, где ожидает Python), когда я установил PyQt. Но, как ни странно, я не смог найти никого другого с той же проблемой в моем поиске в Google.
Кто-нибудь знает, что здесь происходит? Спасибо за вашу помощь!
Дейв
2 ответа
Где-то в вашей системе Ubuntu должен быть каталог с именем QtDeclarative
, Убедитесь, что это в вашем PYTHONPATH
, Нечто подобное должно быть сделано на машине Windows для PyQt4
,
В Ubuntu 10.10 (Maverick) в пакете python- qt4 нет привязки QtDeclarative в списке файлов пакета. Но QtDeclarative.so представлен в Ubuntu 11.04 (Natty).
Таким образом, в этом случае вы можете обновить всю свою ОС до Natty или попробовать вручную скопировать и вставить этот файл в ваш путь к Python.
ОБНОВИТЬ. Просто попытался сделать это в моем Debian Squeeze, но потерпел неудачу из-за зависимости libqt4-декларативной. Однако для Ubuntu Maverick уже существует декларация maverick / libqt4.
PS. Но вы должны знать - ручное копирование не является предпочтительным способом.