PyQt - QtDeclarative导入麻烦

时间:2011-02-24 22:44:30

标签: python qt pyqt importerror qtdeclarative

我正在运行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的地方)。但奇怪的是,在谷歌搜索中我找不到其他同样问题的人。

有谁知道这里发生了什么?谢谢你的帮助!

戴夫

2 个答案:

答案 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。但你应该知道 - 手动复制不是首选方式。