我正在运行Ubuntu 10.10,我通过apt-get安装了PyQt 4.7.4。
我使用QtDesigner构建GUI布局,并使用pyuic4将.ui文件编译为.py。
然后我将自动生成的类子类化并实现子类的构造函数。我调用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
此外,当一位同事使用pyuic4从.py文件4.8.3安装在Windows中将.ui文件编译为.py时,我收到以下错误:
$ 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
当我安装PyQt时,似乎没有安装QtDeclarative(或者没有安装Python的地方)。但奇怪的是,在谷歌搜索中我找不到其他同样问题的人。
有谁知道这里发生了什么?谢谢你的帮助!
戴夫
答案 0 :(得分:0)
你的ubuntu系统上应该有一个名为QtDeclarative
的目录。确保它在PYTHONPATH
中。应该在Windows机器上为PyQt4
完成类似的事情。
答案 1 :(得分:0)
在Ubuntu 10.10(Maverick)包 python-qt4 下,包filelist中没有QtDeclarative绑定。但是在Ubuntu 11.04(Natty)中QtDeclarative.so presents。
因此,在这种情况下,您可以将整个操作系统更新为Natty,或者尝试将此文件手动复制并粘贴到您的python路径中。
UPDATE。刚尝试在我的Debian Squeeze中执行此操作,但由于依赖性libqt4-declarative而失败。但是对于Ubuntu Maverick来说已经有maverick/libqt4-declarative。
PS。但你应该知道 - 手动复制不是首选方式。