记一次macbook安装PyQt4的探坑历程

07/31/2018 Python编程 0条评论 阅读次数 449

背景

因为最近自己想搞个小项目,需要用到PyQt,所以需要在macbook上安装PyQt包,虽然过程比较简单,但绝谈不上是顺利,所以在此记录下,以备日后再用到,同时为后来者提供些帮助。

什么是PyQt?

官网给出的解释是
由此可以知道,PyQt实际上就是一套绑定到QT应用框架下的Python模块的集合,提供给你一系列Python接口,用以调用QT框架进行开发。

环境

系统:OS X 10.11.6
PYTHON VERSION:Python2.7
IDE:PyCharm
这里之所以着重指出环境,是因为安装过程中的问题基本都是环境相关的。

安装

由上面对于PyQt的说明,我们可以知道,PyQt实际上是基于QT应用开发框架的,所以要安装PyQt,本地首先要安装好QT作为环境支持。同时,因为QT本身提供的是一套C/C++接口开发库,所以这里又涉及到一个问题,既然PyQt是提供给Python的一套接口机制,那么,这中间就必然存在Python到C/C++库的一个绑定的过程,由此自然就引出了SIP,何为SIP?官网给出的解释如下:
可知,SIP是一个用于简化为C/C++库创建Python绑定的工具。而上面我们说过,PyQt实际上就是一个QT所提供的C/C++库的Python绑定,因此SIP自然也是PyQt的安装基础。
有上面的解释,基本就列出了PyQt的安装过程:
  1. 安装QT
  2. 安装SIP
  3. 安装PyQt
因为我的电脑是Macbook,所以采用brew进行安装,可根据系统环境的不同,选择对应的安装方式。
而我是直接忽略了前面两个,直接安装的PyQt,brew会进行相应的解析,找出软件依赖项,若是本地环境中没有安装,会自动进行下载安装。
安装过程基本不存在问题,就是需要下载安装QT和SIP,所以可能时间会比较久。

问题

接下来,问题出现了。当安装结束后,满心欢喜的我,在终端进行了最基本的测试,结果
import时竟然失败了。开始,我的第一反应是,安装失败了,但是查找发现,在/usr/local/lib/python2.7/site-packages目录下,是存在PyQt4的
于是,我推断应该是环境变量的问题

一看,果然

PYTHONPATH环境变量为空,于是乎,配置之。这里又引出了一个问题,在哪个文件中配置呢?请参见此文,讲的透彻清晰。
因为我不光要在bash中是用python,还要在PyCharm和eclipse的PyDev中使用,所以果断设置用户级的环境变量,所以选择在/etc/profile文件中进行设置。在/etc/profile文件中添加如下语句

修改保存后,记得使用

使得修改生效,再看看环境变量PYTHONPATH

再试下import PyQt4
可以看到正常了。好!!
孰不知,我实在是图样图森破。到PyCharm中,发现,还是找不到PyQt4。
简单的思考了一下,原本以为PyCharm在启动的时候,会自动读取系统中的环境变量配置,现在发现并不是这样的,所以在PyCharm中一定还存在设置环境变量的地方,简单的搜索了一下,发现果然如此:
和刚才一样,给PYTHONPATH环境变量加入值。果然PyCharm中也可以正常引入PyQt4了。
到此,对于PyQt4的安装和配置告一段落。

发表评论