如何在Windows 7上安装SIP和PyQT

7

我是一个Python环境的新手,现在正在努力在Win 7系统上安装SIP和PyQt。

目前为止,我已经完成以下步骤:

  1. 下载SIP-4.16.9并从zip文件解压文件
  2. 将解压的文件夹复制到C:\Python34\Lib
  3. 启动命令提示符(cmd)并将路径更改为C:\Python34\Lib
  4. 然后在C:\Python34\Lib中输入python configure.py,得到以下响应:

enter image description here

  1. 此时,我不确定它是否已成功安装,因此我查找了位于C:\Python34\Include(根据上面的红色响应)的SIP.h,但我找不到这样的头文件,所以我认为安装没有成功。

请问有人能帮我看看,我错过了什么吗?

其他系统信息:

  • Windows 7 64位
  • Python 3.4
  • 环境变量(路径:C:\Python34;C:\Python34\Lib;C:\Python34\Lib\site-packages)

注意:之前有几个问题发布过,但迄今为止没有一个解决我的问题,我相信我可能错过了一些愚蠢的东西。

谢谢您的时间。


1
个人而言,我在一段时间前放弃了维护自己的Python环境,并采取了简单的方法,现在运行Anaconda。这是一个Python发行版,已经配置好并可以使用QT、NumPy、SciPy、IPython、PyTables、pandas、Matplotlib、scikit-learn和其他软件包。请访问http://continuum.io/downloads#py34查看详情。 - Alex Jadczak
1
文档中可以看出,配置完成后的下一步是构建。建议您尝试构建,如果有问题再提问。 - martineau
@ 检查感谢您提供的链接,我之前有过这个链接,但当有人建议我使用PyCharm时,我将其删除了。 - SanVEE
@martineau,make 没有起作用。我收到了一个错误消息,上面写着“make 不被识别为内部或外部命令”,不过还是谢谢你的建议。 - SanVEE
1
现在你发现了一个更加根本的问题——你没有C/C++编译器和构建扩展所需的“make”工具。你可能还需要下载你正在使用的Python版本的源代码。 - martineau
我确定我已经安装了C/C++编译器和VS 2012专业版,顺便问一下,这个 make 是干嘛用的?它是一个DOS相关的命令吗? - SanVEE
3个回答

18

对于需要在Windows下使用源代码构建sip(或pyqt)的下一位用户

所有这些说明都是针对32位系统的,即使您有64位系统也可以使用它。

对于Qt 5.9.x:

自Qt 5.9以来,Windows上只有一个可下载的Qt版本,其中包括针对MSVC201x和MinGW的预构建组件。

这些说明遵循与Qt 5.8相同的步骤。

由于Microsoft Visual Studio 2015 Community Edition不再提供下载,下一位用户应该使用Microsoft Visual Studio 2017 Community Edition与Qt 5.9,并遵循以下相同的说明。

  1. Microsoft Visual Studio 2017 Community Edition(32位)

  2. Qt 5.9.x

安装Qt时,请确保选择您拥有的正确的预构建组件(例如Microsoft Visual Studio 2017)

enter image description here

对于Qt 5.8及更早版本:

下载

  1. 下载任何一个Python 3.6.x(32位)版本即可:

(如果您还安装了Python 2.7,请确保使用Python的3系列)

  1. 下载源代码:在“源代码包”中,下载“Windows源代码”

  2. Microsoft Visual Studio 2015 Community Edition(32位)

  3. Qt 5.8.0 for Windows 32-bit(VS 2015,1.0 GB)

Qt下载链接必须与已安装的Visual Studio(VS)版本(这里是VS 2015)和您需要安装的PyQt5版本相匹配

例如:

  • PyQt5.8.2
  • Qt5.8.0(VS 2015的链接)
  • Microsoft Visual Studio 2015

编译

打开终端并保持在其上。

重要提示:整个过程中,请务必保持在同一个终端(<

.
├── compilation
|   ├── sip-4.19.2/
|   └── PyQt5_gpl-5.8.2/

请确保您使用的是 Python 3.x 版本:

enter image description here

1 - SIP

前往 sip-4.19.2 文件夹并运行:

python configure.py

enter image description here

在此步骤中,您只是配置了 sip,并没有安装它(基本上是指其安装目录等)。

非常重要的一步:通过在终端中运行以下命令来源化您的环境变量:

请保留双引号,Windows 不支持空格...

enter image description here

"C:\Qt\Qt5.8.0\5.8\msvc2015\bin\qtenv2.bat"

运行此命令后,它会自动更改您的当前目录,并留在终端上,然后返回到您的sip-4.19.2目录并运行:

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"

在Windows系统中,“make”被替换为“nmake”!

然后(始终在同一个终端中)运行:

nmake

在此输入图片描述

[...]

在此输入图片描述

nmake install

在此处输入图片描述

这将在Python目录下创建一个sip.exe,对于我来说,它位于 C:\Python36,但根据你安装Python的位置可能不同。

2 - PyQt5

步骤几乎与sip相同,但需要更多时间。

前往PyQt5_gpl-5.8.2文件夹并运行:

python configure.py --disable QtNfc --confirm-license

请注意,该命令因编译问题而禁用了QtNfs,并自动接受许可证。

然后,运行以下命令(编译需要一段时间):

nmake
nmake install
希望这有所帮助。

你是在sip目录下运行nmake吗(也就是你运行python configure.py的地方)?因为我不记得有指定一个带有nmake的Makefile。如果你仍然有问题,我们可以聊一下http://chat.stackoverflow.com/rooms/135711/build-sip-in-windows - syedelec
我正在~VC\bin目录下运行nmake。我知道它能找到Makefile,因为Makefile的第一行是cd sipgen。我需要安装某种特殊的编译器吗? - Suzanne
感谢您的直接明了的帖子!很有道理。我在nmake期间遇到了版本不匹配的问题。我收到的错误消息是:致命错误LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突。我该如何调试这个问题? - jspada
1
@jspada,您需要安装所有元素,无论是32位还是64位,不能混合使用(例如MVS2015 64位和Qt 32位)。 - syedelec
谢谢!我没有意识到我安装的是 Python 64 位版本,而不是 32 位,这让我困扰了一段时间。 - jspada
显示剩余3条评论

3

在Windows上解决所有安装问题的一种简单方法。请访问http://www.lfd.uci.edu/~gohlke/pythonlibs/,找到您需要的库并下载与您的Python版本和计算机(32位或64位)相对应的.whl文件。接着运行pip install YourWhlFileName.whl,就完成了!(注意:确保不要更改.wheel文件名,否则将无法正常工作。)


谢谢提供链接,但在我尝试之前,我真的想找出问题并找到解决方法。 - SanVEE
3
这是一份很棒的资源,已经多次帮助过我,但是它并没有为sip提供任何轮子(Python库的预编译二进制文件)的托管。 - Azeirah

0

这是为所有想要使用最新的Qt4和Python 3.4.x构建PyQt4的人准备的。

从此处下载Visual Studio 2010: http://download.cnet.com/Microsoft-Visual-Studio-2010-Ultimate/3000-2383_4-75450998.html

然后安装它。

从此处下载SIP源代码(在我的情况下是版本4.19.5): https://www.riverbankcomputing.com/software/sip/download

从此处下载PyQt4源代码(在我的情况下是版本4.12.1): https://www.riverbankcomputing.com/software/pyqt/download

将SIP和PyQt .zip归档文件提取到\Users\your_username\Desktop\compilation\中

从这里下载最新的Qt 4.x(vs2010版本)安装程序: http://download.qt.io/archive/qt/

安装Qt(在我的情况下是qt-opensource-windows-x86-vs2010-4.8.6.exe)。

打开命令提示符(使用此命令提示符进行整个过程),并执行以下命令:

cd \Users\<your_username>\Desktop\compilation\sip-4.19.5
python configure.py
"C:\Qt\4.8.6\bin\qtvars.bat"

在输出中注意QMAKESPEC值,例如win32-msvc2010,在PyQt4 configure-ng脚本的--spec选项中稍后使用它。
如果当前目录已更改,请再次执行:
cd \Users\<your_username>\Desktop\compilation\sip-4.19.5

现在,如果你使用的是64位版本的Python,请执行以下操作:

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"

否则,如果您使用32位版本的Python,请执行以下操作:
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
nmake
nmake install
cd \Users\<your_username>\Desktop\compilation\PyQt4_gpl_win-4.12.1

现在可以在--spec选项中使用先前的QMAKESPEC值:

python configure-ng.py --spec win32-msvc2010
nmake
nmake install

就是这样了;-)

注意: 在某些情况下,为了避免出现此错误

ImportError: DLL load failed: The specified procedure could not be found.

需要从中复制.dll文件

C:\Qt\4.8.6\bin

C:\Python34\Lib\site-packages\PyQt4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接