2013-05-13 74 views
1

运行Ubuntu QQ:pylint错误在python3.2中运行正常,但在python3.3中失败

我有一个使用PyQt的Python项目。在几个地方我导入QtCore和QtGui:

from PyQt4 import QtCore, QtGui 

到现在为止,我一直在使用python3.2.x

当我运行pylint的对这样的文件会报告错误(3):

"Line 1 E: No name 'QtCore' in module 'PyQt4' 

但是,应用程序运行正常,无论如何。

现在我安装了Python 3.3(同一路径上:..在/ usr/bin中/),并配置了我的项目中使用python3.3和python失败:

builtins.ImportError: cannot import name QtCore 
File "/myfile.py", line 1, in <module> 
from PyQt4 import QtCore 

这是怎么回事?使用python3.2时,pylint报告错误,Python没有问题,但使用python3.3时会失败,python3.2中报告错误pylint?

+0

您是否已经在Python3.3中安装了PyQt4? – 2013-05-13 15:01:20

+0

@SethCurry - 请解释 - 多次升级python,永远不需要改变任何东西。你说我必须重新安装PyQt,因为我正在运行一个新的Python解释器?它位于旧的一个地方。 – Vector 2013-05-13 15:12:43

+0

一些模块在不同版本的Python中不兼容,就像大多数模块对于Python 3.x和Python 2.x有不同的版本,一些模块在多个子版本中不兼容(比如PyCrypto),有一个Python 2.6版本,和一个Python 2.7版本,而2.7版本在2.6中不起作用)。我看了一下,看起来人们正在使用Python 3.3与PyQt4,你有什么版本的PyQt4? – 2013-05-13 16:00:06

回答

1

PyQT导入的“错误”pylint报告是因为PyQT有一些C++或其中的一些C,pylint无法轻松自动地反省PyQt模块,并确定您的代码是否正确导入了第三方模块的位。

为了解决这个问题,pylint有一个名为pylint-brains的插件项目,人们可以在其中指定反思特定模块的方法(或伪造他们的内省)。这将是很好的一个贡献,将删除这个相当常见的进口“E”。

对于ImportError,如评论中所讨论的,我认为要么你必须为这个版本的python重新安装PyQt,要么PyQt与3.3还不兼容,或者你的pythonpath中的东西是错误的。

+0

考虑到你的解释,pylint错误并没有真正困扰我。我认为也许它与我在Python 3.3中看到的失败有关,后者报告的内容与pylint相同,但似乎并非如此。至于重新安装PyQt,已经做到了 - apt-get说没有什么可做的,我已经有了最新最好的。这需要更多的调查......与此同时,Python 3.3没有在任何常规ppa中找到,只是“实验性”,所以我会在3.2.3版本中坚持使用。也许这会稍后排除......对我来说不是一个棘手的问题。 – Vector 2013-05-14 17:15:26