在 Windows 7 中安装 PyQt5

installing PyQt5 in Windows 7

我在 Python 3.4 中写了一个程序,我想为它制作一个 GUI。我发现 PyQt5 - 是它的工具。

1) 我已经下载并安装了 PyQt5 的二进制包 (http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.4.1/PyQt5-5.4.1-gpl-Py3.4-Qt5.4.1-x32.exe)。

2) 我试图 运行 这个示例代码 Python:

import sys
from PyQt5.QtWidgets import QApplication, QWidget


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()

    sys.exit(app.exec_())

Python return 编辑错误:

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\PyQt5.py", line 2, in <module>
    from PyQt5.QtWidgets import QApplication, QWidget
  File "D:\PyQt5.py", line 2, in <module>
    from PyQt5.QtWidgets import QApplication, QWidget
ImportError: No module named 'PyQt5.QtWidgets'; 'PyQt5' is not a package

3) 我找到了安装 QT 的建议。所以,我下载并安装了QT(http://download.qt.io/official_releases/online_installers/qt-opensource-windows-x86-online.exe)。

4) 然后我卸载并重新安装了一个PyQt5的二进制包。 没有结果。

Python 没有 return 任何错误,如果我 运行:

import PyQt5

但是如果我尝试 运行:

from PyQt5.QtWidgets import QApplication, QWidget

它return与开头的错误相同。

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\PyQt5.py", line 2, in <module>
    from PyQt5.QtWidgets import QApplication, QWidget
  File "D:\PyQt5.py", line 2, in <module>
    from PyQt5.QtWidgets import QApplication, QWidget
ImportError: No module named 'PyQt5.QtWidgets'; 'PyQt5' is not a package

我做错了什么?

Python documentation states 一样,包含输入脚本的目录位于所有其他搜索路径之前,除非 sys.path 列表被篡改。

并且您的目录 D:\ 已经包含正在导入的模块 PyQt5。尝试从不是包的模块导入子模块 QtWidgets 会导致以下错误:

File "D:\PyQt5.py", line 2, in <module>
  from PyQt5.QtWidgets import QApplication, QWidget
ImportError: No module named 'PyQt5.QtWidgets'; 'PyQt5' is not a package

所以,不要把你的程序文件称为包名。

对于那里的谷歌员工来说,这就是解决我的问题的方法:

您需要确保导入 sys 并为导入命令设置正确的大小写。

import sys
from PyQt5 import QtGui

这是 PyQt5 字符串的正确大小写。我花了一段时间才弄明白。