2

我正在运行 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

此外,当同事使用 Windows 中安装的 PyQt 4.8.3 中的 pyuic4 将 .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 期望的位置)。但奇怪的是,我在谷歌搜索中找不到其他有同样问题的人。

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

戴夫

4

2 回答 2

0

在你的 ubuntu 系统的某个地方应该有一个名为QtDeclarative. 确保它在您的PYTHONPATH. 应该在 Windows 机器上为PyQt4.

于 2011-02-24T22:54:08.557 回答
0

在包python-qt4下的 Ubuntu 10.10 (Maverick) 中,包的filelist中没有 QtDeclarative 绑定。但是QtDeclarative.so 出现在 Ubuntu 11.04 (Natty) 中。

因此,在这种情况下,您可以将整个操作系统更新为 Natty,或者尝试手动将此文件复制并粘贴到您的 python 路径中。

更新。刚刚尝试在我的 Debian Squeeze 中执行此操作,但由于依赖 libqt4-declarative 而失败。但是对于 Ubuntu Maverick,已经有了maverick/libqt4-declarative

PS。但是您应该知道 - 手动复制不是首选方式。

于 2012-04-19T21:22:06.573 回答