如何在虚拟环境中安装SIP和PyQt?

Pie*_*olo 15 python pyqt virtualenv

我是新来的virtualenv.我想安装需要的spyder PyQt4,这需要SIP.

pip不起作用,所以我下载了SIP,我做了以下命令:

python configure.py
make
make install
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

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
Run Code Online (Sandbox Code Playgroud)

不可能的de supprimer意味着不可能擦除.

我没有这个电脑的root权限.我认为在这台PC上默认安装的python包与virtualenv我正在创建的python包之间存在冲突.

我该如何解决这个问题?

Ell*_*val 17

以下是我在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 ..
Run Code Online (Sandbox Code Playgroud)

然后我就可以像这样安装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
Run Code Online (Sandbox Code Playgroud)

这确实在最后给出了错误,但它被忽略了.我认为这只是安装'设计师'的一部分,这并不重要.

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)
Run Code Online (Sandbox Code Playgroud)

  • 使用Ubuntu 14.10,python3.4以及sip和pyqt的最后版本时,我必须在编译sip时使用incdir的绝对路径(/home/username/.virtualenvs/ve/include/python3.4) .对于PyQt,我必须使用--sip-incdir选项和相同(绝对)路径.另外,因为PyQt是__big__,所以需要一些咖啡和一些耐心,这需要一段时间来编译. (2认同)

Enu*_*atl 7

确保你的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 ../../
Run Code Online (Sandbox Code Playgroud)

然后您就可以下载并安装PyQt4了.你必须手动完成.转到PyQt4页面并在工作文件夹中获取最新版本,将其解压缩,然后您就可以使用configure/make/make install再次进行操作.

测试是否通过在python交互式会话中导入一些PyQt4包:

>>> from PyQt4 import QtCore, QtGui
Run Code Online (Sandbox Code Playgroud)