PyDev 无法识别 PyQt5
PyDev doesn't recognise PyQt5
我正在学习有关 pyqt 的教程,并得到了这段代码:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Example(QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
cb = QCheckBox('Show title', self)
cb.move(20, 20)
cb.toggle()
cb.stateChanged.connect(self.changeTitle)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Checkbox')
self.show()
def changeTitle(self, state):
if state == Qt.Checked:
self.setWindowTitle('Checkbox')
else: self.setWindowTitle('Unchecked!')
def main():
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
我在 Eclipse 上使用 PyDev。可以说代码运行良好就足够了,但令人尴尬的是 PyDev 用红线在任何 Qt/Q 下划线,当鼠标悬停在红线上方时显示 Undefined variable: <..>
。如果它未定义,那么我的代码如何运行而没有错误?显然这应该是 PyDev 的问题。我删除了 python 解释器(它指向 python2.7 而不是 3.4)并将其重新添加为正确的版本;但这没有用。有趣的是,它识别 PyQt4 并坚持使用 PyQt4 而不是 PyQt5 的小部件。
请大家注意,上面的代码示例来自另一台也有 PyQt5 的笔记本电脑。这两个项目都来自 PyDev,并且都有 Ubuntu 15.04。有可能是我在当前机器上导入的项目搞砸了 PyDev 解析所需库的过程。有谁能解决为什么 PyDev 无法识别 PyQt5?
我遇到了同样的问题。这些步骤对我有用。
- 设置环境变量:export QT_API=pyqt5(或任何合适的)
- 重新启动 eclipse 以便选择新的环境设置,然后将 PyQt5 添加到解释器的强制内置列表中(Window->preferences->pydev->interpreters->python 口译员)或查看此处 http://www.pydev.org/manual_101_interpreter.html 了解更多详情。
以下 SO 问题提示我存在变量:Setting up IPython Qtconsole with PyQt5。在我设置它之前,我可以通过向内置函数添加 'PyQt5' 来完成一些工作,但是它不会,例如,提供像 from PyQt5.QtGui import
这样的完整的完成列表,甚至虽然 ipython 独立会。此外,pydev 中的 python 控制台有同样的问题,从 Ipython.core.completerlib
调用 module_completion("from PyQt5.QtGui import Q")
产生了相同的不完整列表。最后,我猜想因为 pydev 正在为 gui 事件循环加载 PyQt4(也可以在解释器设置中配置),所以当它试图内省 Qt5 模块时存在名称空间冲突,导致它在构建之前退出完成的完整列表。设置环境变量会导致 pydev 加载 pyqt5 而不是默认的 pyqt4。我没有检查过,但似乎以这种方式设置 pydev 会在完成 pyqt4 引用时遇到问题。
对于所有那些试图弄清楚如何在 Linux 上集成 eclipse、pydev 和 pyqt5 的孤独的互联网流浪者,我从头到尾为您介绍我的方法。
Linux
上的 Eclipse、PyQt5 和 PyDev
- 安装python v3.6
- 从 eclipse.org
安装 eclipse
- 在eclipse中,点击Help->Install New Software
- 单击添加...
- 在可用软件源中添加软件源“http://www.PyDev.org/updates”
- 称之为 PyDev
- 点击 PyDev 复选框
- 点击下一步进行安装
- Download PyQt5
- Download SIP
- 先安装 SIP
- 安装 PyQt5
- 重新配置 eclipse 以使用 PyQt5
- 点击Window→Preferences→PyDev→Interpreters→Python Interpreters
- 点击高级自动配置
- 将解释器重命名为“python3.6”
- 单击库选项卡
- 点击新建文件夹
- 加入“/usr/lib/x86_64-linux-gnu/qt5/plugins”
- 加入“/usr/lib/x86_64-linux-gnu/qt5/libexec”
- 加入“/usr/lib/x86_64-linux-gnu/qt5/bin”
- 点击应用
- 单击应用并关闭
- 重启 eclipse
- 盈利!
这将允许您在开发 pyqt5 应用程序时在 eclipse 中获取选项卡代码补全。
我正在学习有关 pyqt 的教程,并得到了这段代码:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Example(QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
cb = QCheckBox('Show title', self)
cb.move(20, 20)
cb.toggle()
cb.stateChanged.connect(self.changeTitle)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Checkbox')
self.show()
def changeTitle(self, state):
if state == Qt.Checked:
self.setWindowTitle('Checkbox')
else: self.setWindowTitle('Unchecked!')
def main():
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
我在 Eclipse 上使用 PyDev。可以说代码运行良好就足够了,但令人尴尬的是 PyDev 用红线在任何 Qt/Q 下划线,当鼠标悬停在红线上方时显示 Undefined variable: <..>
。如果它未定义,那么我的代码如何运行而没有错误?显然这应该是 PyDev 的问题。我删除了 python 解释器(它指向 python2.7 而不是 3.4)并将其重新添加为正确的版本;但这没有用。有趣的是,它识别 PyQt4 并坚持使用 PyQt4 而不是 PyQt5 的小部件。
请大家注意,上面的代码示例来自另一台也有 PyQt5 的笔记本电脑。这两个项目都来自 PyDev,并且都有 Ubuntu 15.04。有可能是我在当前机器上导入的项目搞砸了 PyDev 解析所需库的过程。有谁能解决为什么 PyDev 无法识别 PyQt5?
我遇到了同样的问题。这些步骤对我有用。
- 设置环境变量:export QT_API=pyqt5(或任何合适的)
- 重新启动 eclipse 以便选择新的环境设置,然后将 PyQt5 添加到解释器的强制内置列表中(Window->preferences->pydev->interpreters->python 口译员)或查看此处 http://www.pydev.org/manual_101_interpreter.html 了解更多详情。
以下 SO 问题提示我存在变量:Setting up IPython Qtconsole with PyQt5。在我设置它之前,我可以通过向内置函数添加 'PyQt5' 来完成一些工作,但是它不会,例如,提供像 from PyQt5.QtGui import
这样的完整的完成列表,甚至虽然 ipython 独立会。此外,pydev 中的 python 控制台有同样的问题,从 Ipython.core.completerlib
调用 module_completion("from PyQt5.QtGui import Q")
产生了相同的不完整列表。最后,我猜想因为 pydev 正在为 gui 事件循环加载 PyQt4(也可以在解释器设置中配置),所以当它试图内省 Qt5 模块时存在名称空间冲突,导致它在构建之前退出完成的完整列表。设置环境变量会导致 pydev 加载 pyqt5 而不是默认的 pyqt4。我没有检查过,但似乎以这种方式设置 pydev 会在完成 pyqt4 引用时遇到问题。
对于所有那些试图弄清楚如何在 Linux 上集成 eclipse、pydev 和 pyqt5 的孤独的互联网流浪者,我从头到尾为您介绍我的方法。
Linux
上的 Eclipse、PyQt5 和 PyDev- 安装python v3.6
- 从 eclipse.org 安装 eclipse
- 在eclipse中,点击Help->Install New Software
- 单击添加...
- 在可用软件源中添加软件源“http://www.PyDev.org/updates”
- 称之为 PyDev
- 点击 PyDev 复选框
- 点击下一步进行安装
- Download PyQt5
- Download SIP
- 先安装 SIP
- 安装 PyQt5
- 重新配置 eclipse 以使用 PyQt5
- 点击Window→Preferences→PyDev→Interpreters→Python Interpreters
- 点击高级自动配置
- 将解释器重命名为“python3.6”
- 单击库选项卡
- 点击新建文件夹
- 加入“/usr/lib/x86_64-linux-gnu/qt5/plugins”
- 加入“/usr/lib/x86_64-linux-gnu/qt5/libexec”
- 加入“/usr/lib/x86_64-linux-gnu/qt5/bin”
- 点击应用
- 单击应用并关闭
- 重启 eclipse
- 盈利!
这将允许您在开发 pyqt5 应用程序时在 eclipse 中获取选项卡代码补全。