如何在 Travis 上安装 PySide?

Posted

技术标签:

【中文标题】如何在 Travis 上安装 PySide?【英文标题】:How can I install PySide on Travis? 【发布时间】:2014-06-30 11:56:05 【问题描述】:

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

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

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

【问题讨论】:

travis-retry sudo apt-get install python3-pyside 对你有用吗?注意你还需要添加virtualenv: system_site_packages: true @Will 感谢您的建议。我已经尝试实现它,但出于某种原因,Travis 没有对新提交做出反应并尝试构建它(我注意到并非所有提交通常都会导致新构建)。我会看看我是否可以稍后运行构建。 @Will 你在哪里添加virtualenv: system_site_packages: true 部分?我试图将它添加到 .travis.yml 的顶层,但结果它是无效的。 查看 scikit-learn 的 .travis.yml 和他们的 install script。您还可以使用 WebLint 语法检查您的 .travis.yml @我会修改.travis.yml 使它现在看起来不错,但是system_site_packages: true 设置breaks the build :( 【参考方案1】:

目前无法通过 apt-get 安装。见github issue 和travis 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

其中&lt;your-site&gt; 是一个网页,其中包含一个指向名为PySideXXXXXXX.whl 的***的链接,并带有正确的naming convention。使用--no-index 防止pip 从pypi 查找和安装更新的PySide。

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

请参阅source。

wheel 托管在 repo 的 gh-pages。

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

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

更新:

以下python脚本

import PySide
from PySide import QtGui

fails PySide wheel 是在 Ubuntu 14.04 上构建的。见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

【讨论】:

谢谢,感谢详尽的文章! 感谢您的撰写!我试图在 conda 环境中使用独立的***安装 PySide,但我无法让它工作。原来我只需要运行python pyside_postinstall.py -install【参考方案2】:

一个好的解决方案是使用 Travis 的 caching feature 来缓存跨版本的***。

添加

language: python
cache: pip

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

【讨论】:

以上是关于如何在 Travis 上安装 PySide?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有超时的情况下在 Travis CI 上安装一些东西?

如何在 Windows 上安装 PySide 的步骤

QApplication 实例/qtbot 夹具导致 travis-ci 中止和核心转储

无法在 PySide2 上加载 QMYSQL 驱动程序

如何在 Travis CI 上设置 Dojo Doh 单元测试?

如何让 Travis CI 自动同意 pip?