【问题标题】:How to install PyQt5 on Windows for Python 2?如何在 Windows 上为 Python 2 安装 PyQt5?
【发布时间】:2014-10-24 16:40:33
【问题描述】:

我正在将一个使用 PyQt5 的 Python 2 应用程序从 Linux 移植到 Windows。

问题:如何在 Windows 上安装 PyQt5?

我尝试过的:

  1. pip install PyQt5 失败:

    Downloading/unpacking PyQt5
      Could not find any downloads that satisfy the requirement PyQt5
    Cleaning up...
    No distributions at all found for PyQt5
    Storing debug log for failure in C:\Users\user\pip\pip.log
    
  2. 正在寻找 Windows 安装程序 on the official website,但只有适用于 Python 2 的 PyQt4 安装程序。

我该怎么办?

【问题讨论】:

    标签: python-2.7 pyqt5


    【解决方案1】:
    pip install python-qt5
    

    在 Windows 上通过 PyPI 为 Python 2.7 64 位安装非官方 PyQt5

    Github 在这里:https://github.com/pyqt/python-qt5

    【讨论】:

    • 这个问题需要更多的赞(y)
    • 不幸的是,这不是完整的集合,例如QWebEngine的QWebPage的runJavaScript函数没有编译所有三个重载,回调丢失。
    【解决方案2】:

    有一个关于为 Python2.7 安装 PyQt5 和 SIP 的有趣指南: https://blog.synss.me/2018/how-to-install-pyqt5-for-python-27-on-windows/

    回想一下,它首先需要安装 pip 和 virtualenv 模块,以创建一个用于安装它的 python 的虚拟环境。然后,它类似于Peter Du 答案。不过,我想在配置选项中强调一下:

    python configure.py ^
    --confirm-license ^
    --no-designer-plugin ^
    --no-qml-plugin ^
    --assume-shared ^
    --disable=QtNfc ^
    --qmake=C:\Qt\%_QTVERSION%\msvc2015\bin\qmake.exe ^
    --sip=%VIRTUAL_ENV%\Scripts\sip.exe
    

    在这种情况下,请记住 Qt 版本应该与 PyQt 中的版本相似。

    另一点要强调的是版本。我已经使用最新版本的 SIP 4.19.13 和 PyQt5 5.11.3 进行了探索,但是,即使我可以正确安装它,我也无法启动模块并导入它,因为我收到了与缺少 sip 相关的错误消息模块,如果使用 Visual Studio 的开发者控制台,如果在通用控制台中使用,则缺少 DLL,如DLL load failed when importing PyQt5中所指出的@

    我也尝试过使用 SIP 4.19.8 和 PyQt5 5.10.1,如上例所示,但是,此版本中的 PyQt5 与 Visual Studio 2017 的社区版存在一些问题。

    最后,正如 pixebeit 在Peter Du 答案中所评论的那样,我使用 Qt 5.7 使用 SIP 4.19.13 和 PyQt5 5.7.1 和 Python 2.7.15 成功安装并启动了它(安装时选择此版本在Qt 维护工具显示的列表)和 Visual Studio 2017 社区版,以 MSVC2015 作为编译器。

    注意:

    如果您想从传统的 CMD 运行使用通过这种方法安装的 PyQt5 的独立应用程序,您有两种选择:

    1. 如果安装在虚拟环境中,则将 DLL 文件从 C:\Qt\%_QTVERSION%\msvc2015\bin 复制到 %VIRTUALENV%\Lib\site-packages\PyQt5,如果安装在基本文件中,则复制到 C:\Python27\Lib\site-packages\PyQt5,如 https://github.com/x64dbg/PyQt5 中所指出的那样。
    2. C:\Qt\%_QTVERSION%\msvc2015\bin 添加到 Windows 的 PATH 环境变量中。

    【讨论】:

      【解决方案3】:

      这是一个非常古老的问题,但如果我一周前遇到这个问题并给出了不错的答案,我会发现它非常有用。这是我为达到预期结果所做的工作。正如您所指出的,PyQt5 和 Python 2.7 不支持包,因此您必须自己构建它。值得庆幸的是,这个过程非常简单。假设您已经安装了 Python 2.7。

      1. 您需要有效安装 MS Visual C++。我有专业版,但我认为社区版也可以。
      2. 您需要有一个合适的 qt 版本。如果您使用的是 32 位 Python,请确保您获得的是 32 位 Qt。此外,(即使我认为这不重要),我确保获得使用与我拥有的相同版本的 MSVC 编译器构建的 Qt 版本。如果 Qt 安装和 PyQt 之间存在任何静态链接(这可能导致链接的目标文件出现二进制不兼容),这可能很重要。从http://download.qt.io/ 获取 Qt 请注意,Qt 对许可有额外的考虑,因此您可能想先看看https://www.qt.io/download/
      3. 确保 Qt 安装的 bin 子目录位于系统路径中。
      4. 获取 SIP 的源。 SIP 可从riverbankcomputing.com 获得。我用的是 4.18 版。
      5. 有三个命令可以构建和安装 SIP。不要从标准 shell 运行这些命令,而是使用 Visual Studio 工具命令 shell,以便您的路径包含编译器,并设置 INCLUDE、LIBS 和 LIBPATH 环境变量。

        python configure.py

        如果您使用 Python 的虚拟环境,您可能必须修改 SIPLib 的 makefile,因为它对 Python 包含子目录和 libs 子目录位置的依赖项进行硬编码。我选择将它们指向系统 Python 安装(c:\Python27\include 和 c:\Python27\libs。)现在应该很简单了

        nmake

        nmake install

        此步骤的最后一部分是检查 sip.exe 程序是否已放置在您路径中的某个位置(如果您使用的是虚拟 Python 环境,这可能只是一个问题。我复制了程序到脚本目录。)

      6. 获取与您之前获得的 Qt 版本相对应的 PyQt 版本的源代码。它可从 sourceforge 上的 PyQt 项目获得,最新版本可从 riverbankcomputing.com 获得。

      7. 重复相同的过程:

        python configure.py

        nmake

        nmake install

        用于构建 SIP。在这种情况下,生成的 makefile 的数量太大(所有这些都可能与 python27.lib 文件和标头的错误位置有关,具体取决于您的虚拟环境。)我刚刚将 python27.lib 文件复制到了生成文件期望。同样,有三个应用程序安装在不属于系统路径的位置(pyuic5、pyrcc5 和 pylupdate5),我也将它们复制到路径中的某个位置。

      完成。您应该能够构建您的 PyQt5/Python2.7 应用程序。

      【讨论】:

      • 非常有帮助!警告:使用 64 位 Python 2.7、Qt/PyQt 5.7.1、sip 4.19、MSVC 2015 社区,我必须对 PyQt5 使用“python configure.py --disable=QtNfc”,否则构建会失败。同样的事情发生在其他人身上:riverbankcomputing.com/pipermail/pyqt/2015-August/036222.html
      • 第 6 点错误:PyQt5 不与 Qt5 同步版本。
      • 晚了一年,但我将其标记为已接受 b/c 我无法再访问 Windows :)
      • pip install python-qt5 就是这样
      猜你喜欢
      • 2021-05-28
      • 2016-09-11
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 2021-12-10
      • 1970-01-01
      相关资源
      最近更新 更多