我可以使用 travis-ci 来测试 python 的 specific(包括次要编号)版本吗?

Can I use travis-ci to test against specific (including minor number) version of python?

如果您的 .travis.yml 文件中有:

language: python
python:
- 2.7

您的代码将针对 python 2.7.9:

进行测试
$ source ~/virtualenv/python2.7/bin/activate
$ python --version
Python 2.7.9

但是 Python 2.7.9 破坏了 urllib3 (https://github.com/shazow/urllib3/issues/482) and gevent (https://github.com/gevent/gevent/issues/477)。我想这就是为什么最新的 Ubuntu 仍然附带 Python 2.7.6.

出于这些原因,我真的需要针对 python >=2.7 但 <2.7.9 测试我的库,是否可以以某种方式在 .travis.yml 中指定次要 python 版本?我试过:

python:
- 2.7.6

但它不起作用。有什么想法吗?

据我所知,您无法使用 Travis 指定次要版本。但是您可以做的是在 conda 环境中使用 Anaconda 。因此,您可以安装您选择的 local 版本的 python。

在您的 before_install 脚本中,您可以通过以下方式下载和设置它:

  - wget http://repo.continuum.io/miniconda/Miniconda-3.7.3-Linux-x86_64.sh -O miniconda.sh
  - bash miniconda.sh -b -p $HOME/miniconda
  - export PATH="$HOME/miniconda/bin:$PATH"
  - conda config --set always_yes yes --set changeps1 no
  - conda update -q conda
  # Useful for debugging any issues with conda
  - conda info -a
  # USE YOUR PYTHON VERSION HERE
  - conda create -q -n py276 python=2.7.6 
  - source activate py276

这里重要的部分当然是:conda create -q -n py276 python=2.7.6

因此,在您的 Travis 脚本中调用 python 将自动使用随 anaconda 安装的版本,即 Python 2.7.6.