如何在虚拟环境中安装 SIP 和 PyQt?
Posted
技术标签:
【中文标题】如何在虚拟环境中安装 SIP 和 PyQt?【英文标题】:How to install SIP and PyQt on a virtual environment? 【发布时间】:2013-11-08 10:36:17 【问题描述】:我是virtualenv
的新手。我要安装spyder,需要PyQt4
,需要SIP
。
pip
不起作用,所以我下载了SIP
,并执行了以下命令:
python configure.py
make
make install
但是我收到了这个错误:
make[1]: entrant dans le répertoire « /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/build/SIP/sipgen »
cp -f sip /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/bin/sip
make[1]: quittant le répertoire « /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/build/SIP/sipgen »
make[1]: entrant dans le répertoire « /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/build/SIP/siplib »
cp -f sip.so /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/lib/python2.7/site-packages/sip.so
strip /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/lib/python2.7/site-packages/sip.so
cp -f /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/build/SIP/siplib/sip.h /usr/local/python/include/python2.7/sip.h
cp: impossible de supprimer « /usr/local/python/include/python2.7/sip.h »: Permission non accordée
make[1]: *** [install] Erreur 1
make[1]: quittant le répertoire « /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/build/SIP/siplib »
make: *** [install] Erreur 2
Impossible de supprimer 表示无法擦除。
我没有这台电脑的 root 访问权限。我认为这台电脑上默认安装的 python 包和我正在创建的virtualenv
之间存在冲突。
我该如何解决这个问题?
【问题讨论】:
点击这个链接:***.com/questions/1961997/… 【参考方案1】:以下是我在 virtualenv 中安装 sip 的步骤。诀窍是确保您使用(未记录的?)--always-copy
标志,以便它不只是将/usr/include/python2.7
目录符号链接到您的virtualenv
。
virtualenv --always-copy ve
. ve/bin/activate
wget http://sourceforge.net/projects/pyqt/files/sip/sip-4.15.4/sip-4.15.4.zip
unzip sip-4.15.4.zip
cd sip-4.15.4
python configure.py --incdir=../ve/include/python2.7
make
make install
cd ..
然后我就可以像这样安装 PyQt4:
wget http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.10.3/PyQt-x11-gpl-4.10.3.tar.gz
tar zxvf PyQt-x11-gpl-4.10.3.tar.gz
cd PyQt-x11-gpl-4.10.3
python configure.py
make
make install
这在最后确实给出了一个错误,但它被忽略了。我认为这只是安装“设计师”的一部分,并不重要。
install: cannot create regular file `/usr/lib/x86_64-linux-gnu/qt4/plugins/designer/libpyqt4.so': Permission denied
make[1]: [install_target] Error 1 (ignored)
【讨论】:
在写这篇文章时使用 Ubuntu 14.10、python3.4 和最新版本的 sip 和 pyqt,我在编译 sip (/home/username/.virtualenvs/) 时必须使用 incdir 的绝对路径ve/include/python3.4)。对于 PyQt,我必须使用具有相同(绝对)路径的 --sip-incdir 选项。另外,请喝杯咖啡和一点耐心,因为 PyQt 很大在这里编译需要一段时间。 我想补充一点,“python configure.py --incdir ...”的--incdir部分是我删除“权限被拒绝错误”所必需的,而且导致“import sipconfig”和“import sip”工作。当“--incdir..”被省略时,只有“import sip”有效 大家好!我正在尝试在 virtualenv 中进行此安装,但遇到了问题。 SIP 安装顺利。我安装了 SIP 版本 4.19.2。当我为 PyQt 4.12 运行配置时,我收到错误“错误:此版本的 PyQt 需要 SIP v4.19.0 或更高版本”。我尝试将 --incdir 设置为包含目录运行但没有成功。我错过了一步吗?【参考方案2】:确保您的 virtualenv 处于活动状态。 安装 pyenv 和 pyenv-virtualenv 后,您可以快速执行这些命令。
我刚刚在新创建的 virtualenv 上成功安装了 SIP 和 PyQt4:
pyenv virtualenv testenvironment
pyenv rehash
pyenv shell testenvironment
cd ~/.pyenv/versions/testenvironment/
pip install --no-install sip #fails but do not worry
cd build/sip/
python configure.py #--incdir=~/.pyenv/versions/testenvironment/include/python2.7 may be needed
make
make install
cd ../../
然后您就可以下载并安装 PyQt4。你必须这样做 手动。 转到PyQt4 page 并获取 工作文件夹中的最新版本,解压它,你准备好了 再次使用 configure/make/make install。
通过在 python 交互会话中导入一些 PyQt4 包来测试:
>>> from PyQt4 import QtCore, QtGui
【讨论】:
以上是关于如何在虚拟环境中安装 SIP 和 PyQt?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 matplotlib.pyplot 在 OSX 的虚拟环境中工作?
如何使用 Pip (OS X) 在虚拟环境中安装 Python 包
如何在anaconda虚拟环境中安装多个版本的CUDA,cudnn,pytorch,torchvision,torchaudio及进行环境配置手把手教学