PyQt - QtDeclarative导入问题
我在使用Ubuntu 10.10系统,并通过apt-get安装了PyQt 4.7.4。
我用QtDesigner创建了一个图形界面布局,然后使用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期望的位置)。但奇怪的是,我在谷歌搜索时找不到其他人有同样的问题。
有没有人知道这是怎么回事?谢谢你的帮助!
Dave
2 个回答
0
在Ubuntu 10.10(代号Maverick)中,安装python-qt4这个软件包时,里面没有QtDeclarative这个绑定,具体可以在这个文件列表里查看。不过在Ubuntu 11.04(代号Natty)中,QtDeclarative.so这个文件是存在的,具体可以查看这里。
所以在这种情况下,你可以选择把整个操作系统升级到Natty,或者试着手动把这个文件复制到你的python路径里。
更新:我刚在我的Debian Squeeze上尝试这样做,但因为依赖问题libqt4-declarative而失败。不过对于Ubuntu Maverick来说,已经有了maverick/libqt4-declarative这个包。
附言:不过你要知道,手动复制文件并不是推荐的做法。
0
在你的Ubuntu系统上应该有一个叫做QtDeclarative
的文件夹。确保这个文件夹在你的PYTHONPATH
里面。对于Windows电脑,PyQt4
也需要做类似的设置。