如何在Windows上为Python 2安装PyQt5?

时间:2014-08-31 05:02:41

标签: python-2.7 pyqt5

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

问题:如何在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,但只有PyQt4安装程序可用于Python 2.

  3. 我该怎么办?

3 个答案:

答案 0 :(得分:18)

这是一个非常古老的问题,但是如果我在一周前得到一个不错的答案,我会发现它非常有用。这就是我为实现预期结果所做的工作。正如您所指出的,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 include子目录和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文件复制到了makefile期待。同样,有三个应用程序安装在不属于系统路径(pyuic5,pyrcc5和pylupdate5)的位置,我也将它们复制到路径中的某个位置。

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

答案 1 :(得分: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社区版中存在一些问题。

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

注意:

如果要运行使用通过此方法安装的PyQt5的独立应用程序,请从常规CMD运行,您有两个选择:

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

答案 2 :(得分:0)

{{1}}

在Windows上通过适用于Python 2.7 64位的PyPI安装非官方的PyQt5

Github为此:https://github.com/pyqt/python-qt5