【问题标题】:How can I install PySide on Travis?如何在 Travis 上安装 PySide?
【发布时间】: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 :(

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


【解决方案1】:

目前无法通过 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

其中&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 轮子将构建一次,并在应用程序的重建过程中持续存在。

【讨论】:

    猜你喜欢
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 2020-04-03
    相关资源
    最近更新 更多