能否在Virtualenv虚拟环境中添加PyQt4/PySide包?

59

我在我的开发环境中使用 Virtualenv 成功地与 web.py, simplejson 和其他面向web的包一起使用。
我将要使用Qt编写一个简单的Python客户端,以便重用使用web.py开发的API。

这里有人成功地将 PyQt4 安装到 Virtualenv 中吗?
这是否可能?

我已经下载了所有的二进制文件,并在我的 python2.6 目录下全局安装了 PyQt4
如果我不使用 --no-site-packages 选项,Virtualenv 将正确地将 PyQt4 包含在我的新沙盒中,但显然也包括了我不需要的所有全局包。

有没有一种干净的方法来准备一个带有 --no-site-packages 选项的新沙盒,然后使用 pipeasy_install 或其他魔法技巧添加 PyQt4PySide


1
对于 PySide,只需使用 pip install pyside,无需任何魔法技巧。已在1.2.4上进行了测试。 - anatoly techtonik
13个回答

2

加强Aaron Digulla的回答,使用git获取文件列表非常方便。我通常会这样做(来自msysGit shell):

# Create temp git repo for the pristine Python installation
$ cd /c/Python27
$ git init -q
$ git add .
$ git commit -qm "Initial commit"

然后运行PyQt4(或其他版本)的安装程序。之后,将安装程序添加的文件制作成tarball并删除临时git存储库,具体操作如下:

# Stage the PyQt4-installed files and feed a list of their names to tar
# (note that there's no need to actually commit them)
$ git add --all
$ git diff --cached --name-only | tar -jcf pyqt4.tar.bz2 --files-from=-
$ rm -rf .git

然后,如果您不想混乱系统Python,您可以运行PyQt4的卸载程序,并将pyqt4.tar.bz2解压缩到您的虚拟环境文件夹中。如果您已经熟悉使用git,这是确保您获得所有安装的PyQt4文件的好方法。
注意:使用打包安装程序安装PyQt4也会安装SIP。如果您实际上想在虚拟环境内使用此SIP来创建自己的C/C++代码绑定,您需要在复制它后修改sipconfig.py文件中的路径。否则,SIP的构建系统仍将指向系统Python文件夹(例如,C:\Python32或其他),如果您从那里删除了所有PyQt4安装的文件,则无法正常工作。 (如果您没有使用SIP的意图,您可能可以跳过此步骤。)

2

符号链接可能有效。

我使用Linux(Debian/sid),python 3.4,PySide,virtualenv和PyCharm(IDE),但这些同样的指令适用于任何软件包和开发环境。

对我来说,在/usr/lib/python3/dist-packages/PySide/$VIRTUAL_ENV/lib/python3.4/site-packages/PySide/之间的符号链接起作用。

cd $VIRTUAL_ENV/lib/python3.4/site-packages/
mkdir PySide
cd PySide`
for x in /usr/lib/python3/dist-packages/PySide/* ; do ln -s $x ; done

有趣的是,如果我只对PySide目录建立符号链接,它是不起作用的。我需要为该目录中的每个文件都建立符号链接。这可能是 PyCharm(我的 IDE)的限制 - 我不知道。


0
试试这个: pip install python-qt5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接