如何在Travis上安装PySide?

时间:2014-06-30 11:56:05

标签: python qt pyside travis-ci python-3.4

我对Quamash的测试依赖于{3.4}的PySide(或最终的PyQt),所以我想知道如何在Travis上安装此依赖项,以便它可用于测试

我知道我可以通过pip从源代码安装PySide,但这是一个非常缓慢的过程。

如果我需要提供更多信息,请告诉我。

2 个答案:

答案 0 :(得分:11)

目前无法通过apt-get进行安装。请参阅github issuetravis docs

其他三个选项。

只需使用pip

您的.travis.yml将包含:

install:
  - pip install PySide

正如您所提到的,在travis-ci服务器上从源代码构建PySide需要很长时间。但是,这种方法可以保证有效。

等待Travis CI更新到Ubuntu 14.04

Issue。 Python3.4包含在Ubuntu 14.04中。然后,您的.travis.yml可能如下所示:

install:
    - sudo apt-get install python3-pyside

构建自己的轮

您可以构建自己的PySide wheel,因此使用Python3.4构建Travis-CI不必从源代码构建PySide。

instructions之后,我通过以下方式构建了一个PySide轮。

$ 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

然后你可以在某个地方托管这个轮子,然后使用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的轮子的链接,其中包含正确的naming convention。使用--no-index阻止pip从pypi查找并安装较新的PySide。

我继续尝试了这个,基本用法有效!

请参阅source

轮子托管在仓库gh-pages

在我的机器上注意Ubuntu 14.04,构建轮子创建了大约17 MB的文件dist/PySide-1.2.2-cp34-cp34m-linux_x86_64.whl。当我在构建步骤中包含--standalone标记时,文件大约为77 MB。

请注意,到目前为止,只有import PySide已经过测试。由于这是在Ubuntu 14.04和运行Ubuntu 12.04的Travis-Ci服务器下构建的,我不知道PySide库的功能如何。如果遇到问题,可能需要在运行Ubuntu 12.04的计算机上重做。

更新

以下python脚本

import PySide
from PySide import QtGui
当PySide轮在Ubuntu 14.04上构建时,

fails。见the failure。但是,当PySide构建在Ubuntu 12.04上时,它会成功,请参阅the success

使用我的PySide轮

在.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

答案 1 :(得分:0)

一个好的解决方案是使用Travis的caching feature来缓存构建中的轮子。

添加

language: python
cache: pip

.travis.yml缓存$HOME/.cache/pip。因此,PySide轮将构建一次,并在应用程序的重建过程中持续存在。