一、创建一个虚拟环境
1 创建一个python=2.7的虚拟环境:
conda create -n pyqt4 numpy matplotlib python=2.7
2 在环境中安装几个需要的包:
pip install Theano
pip install python-opencv==3.4.0.14
pip install qdarkstyle
pip install dominate
二、在主环境下安装python-pyqt4
由于 PyQT4 安装在主环境中,在虚拟环境中没有 PyQT4 的包,因此无法导入,命令安装 PyQT4 需要 sudo 权限,而用 sudo 安装时是采用 root 权限安装的,所以安装环境是在系统的主环境,因此无法简单的用命令在 virtualenv 中安装 PyQT4.
sudo apt-get install python-qt4
然而conda install pyqt
只能安装pyqt5版本的。
conda search pyqt
我是只搜到pyqt5。
三、将主环境的qt4复制到虚拟环境中
我们需要手动将 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
虚查看拟环境的路径:
conda info --env
找到路径后把PyQt4和sip.so放到./lib/python2.7/site-packages/
目录下即可。
这边有个小问题就是from PyQt4 import QtGui
可能会报错,显示没有QtGui 这个模块。
我的解决方法是:
mv sip.x86_64-linux-gnu.so sip.so
mv QtGui.x86_64-linux-gnu.so QtGui.so