如何在 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
其中<your-site>
是一个网页,其中包含一个指向名为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 上安装一些东西?
QApplication 实例/qtbot 夹具导致 travis-ci 中止和核心转储