Python:来自导入错误

时间:2011-02-24 01:16:54

标签: python import pyside

我在Ubuntu 10.10上运行Python 2.6.6。

据我所知,我们可以导入模块并将该模块绑定到其他名称,例如

import spam as eggs

from eggs import spam as foo

我的问题是,在运行PySide examples时,以下导入代码无法运行:

import PySide as PyQt4
from PyQt4 import QtCore, QtGui

它会生成导入错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named PyQt4

显然,根据Python解释器上面的代码是不正确的,我的问题是为什么它不正确或者为什么这不起作用?

2 个答案:

答案 0 :(得分:4)

importfrom是一种特殊语法。

他们寻找模块名称,这意味着sys.path中的文件以模块名称开头。

似乎你没有安装PyQt4,所以它会失败。

在运行PyQt4之后,在命名空间中有一个名为import PySide as PyQt4的变量这一事实并没有改变任何东西,当你执行{{{{}时,Python仍在寻找一个名为PyQt4的实际模块1}}。

尝试

from PyQt4 import QtCore, QtGui

import PySide as PyQt4
QtCore = PyQt4.QtCore
QtGui = PyQt4.QtGui

这应该是等价的。

答案 1 :(得分:2)

我刚刚安装了PySide并且正在做一个所有示例都使用PyQt4的教程。我厌倦了将导入从PyQt4更改为PySide所以我只是在我的站点包中创建了一个符号链接,使用以下步骤:

1)肯定有更好的方法但是我通过打开shell并运行python找到了我的python包的安装位置,然后输入了交互式解释器:

>>> import sys

>>> print sys.path

2)然后我在其中一个目录中发现了PySide并cd了它(nb它位于/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages如果您在Mac OSX Leopard 10.5.8上使用macports PySide安装for python 2.7。

3)然后我用ln做了一个符号链接,在我的情况下我不得不使用sudo:

sudo ln -s PySide PyQt4

就是这样,现在我可以使用:

from PyQt4 import QtGui

正常 - 快乐的日子!

显然,如果您想安装PyQt4,首先应该使用PyQt4符号链接。 另一个警告:我上面所描述的可能在很多方面都是错误的/坏的 - 我不是Python安装的专家,但到目前为止它对我来说还可以。 YMMV因此使用风险自负。希望有人会很快评论说“不,非常糟糕!”或者理想的是“是的,不要流汗,我们冷静......”