在Virtualenv中导入PyQT4

在Virtualenv中导入PyQT4

问题描述

  最近进行一个小项目,目的是实现在类似谷歌的界面中,在搜索框中输入 URL,将对应网站的截图即时返回给用户。
  在后台实现过程中,采用了用 PyQT4 的 QtWebKit 来模拟浏览器对网页进行渲染,之后截图。但在部署过程中出现了问题,即在 virtualenv 中运行程序时无法 import PyQT4,同时也无法使用命令直接将 PyQT4 安装在虚拟环境中。

产生原因

  由于 PyQT4 安装在主环境中,在虚拟环境中没有 PyQT4 的包,因此无法导入,命令安装 PyQT4 需要 sudo 权限,而用 sudo 安装时是采用 root 权限安装的,所以安装环境是在系统的主环境,因此无法简单的用命令在 virtualenv 中安装 PyQT4.

解决办法

  因此,我们需要手动将 PyQT4 的包以及 sip.so 导入到 virtualenv 中来。
在已安装 PyQT4 的系统中搜索,我们可得到 PyQT4 包的位置,以及sip.so文件的位置
  如果你是使用 python2.7 安装 PyQT4 的,则两者会在对应的如下位置:

/usr/lib/python2.7/dist-packages/PyQT4
/usr/lib/python2.7/dist-packages/sip.so

  如果你是使用python3的,则将 python2.7 换为你对应的版本。
  接下来,我们将这两个文件放在你的项目创建的 Virtualenv 目录下的 ./lib/python2.7/site-packages/ 目录下,即可解决问题。
  解决的原理是 dist-packages 是 Debian 类 Linux 系统的包安装默认位置,如果你用 sudo apt-get install 命令安装包,一般会安装到这个目录,而 site-packages 目录是 python 包的手动安装目录,将包放入这个目录下即可正常 import 和运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值