如何在Travis上安装PySide?
2 个回答
一个不错的解决办法是使用Travis的缓存功能,这样可以在不同的构建之间保存一些文件。
只需要在你的
language: python
cache: pip
中添加这段代码,就可以缓存$HOME/.cache/pip
这个文件夹了。这样,PySide这个文件只需要构建一次,以后在重新构建你的应用时就可以直接使用,不用再重新构建了。
通过apt-get安装目前是不可能的。可以查看一下这个GitHub问题和Travis文档。
这里有三种其他的选择。
直接使用pip
你的.travis.yml
文件中需要包含:
install:
- pip install PySide
正如你提到的,从源代码构建PySide在travis-ci服务器上会花费很长时间。不过,这种方法是可以保证有效的。
等Travis CI更新到Ubuntu 14.04
这个问题。Python3.4包含在Ubuntu 14.04中。然后,你的.travis.yml
可以看起来像这样:
install:
- sudo apt-get install python3-pyside
自己构建一个wheel
你可以自己构建一个PySide的wheel,这样Travis-CI在使用Python3.4时就不需要从源代码构建PySide了。
按照这些说明,我通过以下方式构建了一个PySide的wheel:
$ git clone https://github.com/PySide/pyside-setup.git pyside-setup
$ cd pyside-setup
$ python3.4 setup.py bdist_wheel --qmake=/usr/bin/qmake-qt4 --version=1.2.2
然后你可以把这个wheel放到某个地方,并通过以下方式在travis中访问它:
install:
- sudo apt-get install libqt4-dev
- pip install PySide --no-index --find-links https://<your-site>;
# Travis CI servers use virtualenvs, so we need to finish the install by the following
- python ~/virtualenv/python${TRAVIS_PYTHON_VERSION}/bin/pyside_postinstall.py -install
其中<your-site>
是一个网页,里面有一个指向名为PySideXXXXXXX.whl
的wheel的链接,并且要遵循正确的命名规则。使用--no-index
来防止pip找到并安装一个更新的PySide版本,避免从pypi下载。
我尝试了一下,基本用法是可以的!
可以查看源代码。
这个wheel托管在这个库的gh-pages上。
在我的Ubuntu 14.04机器上,构建wheel时生成了文件dist/PySide-1.2.2-cp34-cp34m-linux_x86_64.whl
,大约17 MB。当我在构建步骤中加入--standalone
标签时,文件大小变成了大约77 MB。
请注意,目前只测试了import PySide
。由于这是在Ubuntu 14.04下构建的,而Travis-CI服务器运行的是Ubuntu 12.04,所以我不确定PySide库的功能。如果你遇到问题,可能需要在运行Ubuntu 12.04的机器上重新进行构建。
更新:
以下的python脚本
import PySide
from PySide import QtGui
在Ubuntu 14.04上构建的PySide wheel时会失败
。可以查看失败的情况。但是在Ubuntu 12.04上构建PySide时是成功
的,查看成功的情况。
使用我的PySide wheel
在你的.travis.yml文件中,包含以下内容:
install:
- sudo apt-get install libqt4-dev
- pip install PySide --no-index --find-links https://parkin.github.io/python-wheelhouse/;
# Travis CI servers use virtualenvs, so we need to finish the install by the following
- python ~/virtualenv/python${TRAVIS_PYTHON_VERSION}/bin/pyside_postinstall.py -install