PyQt - QtDeclarative проблемы с импортом - PullRequest
2 голосов
/ 25 февраля 2011

Я использую 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.

Кто-нибудь знает, что здесь происходит? Спасибо за вашу помощь!

Dave

Ответы [ 2 ]

0 голосов
/ 20 апреля 2012

В Ubuntu 10.10 (Maverick) в пакете python-qt4 нет привязки QtDeclarative в списке файлов пакета .Но QtDeclarative.so представляет в Ubuntu 11.04 (Natty).

Так что в этом случае вы можете обновить всю свою ОС до Natty или попробовать вручную скопировать и вставить этот файл в путь к Python.

ОБНОВЛЕНИЕ. Просто попытался сделать это в моем Debian Squeeze, но потерпел неудачу из-за декларативной зависимости libqt4.Однако для Ubuntu Maverick уже существует maverick / libqt4-декларативный .

PS. Но вы должны знать - копирование вручную не является предпочтительным способом.

0 голосов
/ 25 февраля 2011

В вашей системе Ubuntu должен быть каталог с именем QtDeclarative.Убедитесь, что это в вашем PYTHONPATH.Нечто подобное должно быть сделано на компьютере Windows для PyQt4.

...