为 py26 使用 tox 安装 pandas

Installing pandas with tox for py26

当我的包使用 tox 到 运行 pytest 时出现问题,使用 py26 作为环境之一(全局环境是 py3.6,py26 环境是 py2。 6.9 通过 pyenv)

安装

tox.ini 文件:

[tox]
envlist = py26,py27,py36
[testenv]
deps=
   pytest
   PyPDT
   py26: numpy<1.12.0
   py{27,36}: numpy
   py26: pandas==0.16.2
   py{27,36}: pandas
   py26: matplotlib<1.5.0
   py{27,36}: matplotlib<2.1.0

commands=pytest

pandas 安装过程中出现以下错误:

Collecting pandas==0.16.2
  Using cached pandas-0.16.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/pr/ghw8lmr94c5g9ntx4cp9990w0000gn/T/pip-build-cuCAyE/pandas/setup.py", line 406, in <module>
        from wheel.bdist_wheel import bdist_wheel
      File "/Users/brianpollack/Coding/scikit-hep/.tox/py26/lib/python2.6/site-packages/wheel/bdist_wheel.py", line 407
        ignore=lambda x, y: {'PKG-INFO', 'requires.txt', 'SOURCES.txt',
                                       ^
    SyntaxError: invalid syntax

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/pr/ghw8lmr94c5g9ntx4cp9990w0000gn/T/pip-build-cuCAyE/pandas/

ERROR: could not install deps [setuptools, pytest, PyPDT, numpy<1.12.0, pandas==0.16.2, matplotlib<1.5.0]; v = InvocationError('/Users/brianpollack/Coding/scikit-hep/.tox/py26/bin/pip install setuptools pytest PyPDT numpy<1.12.0 pandas==0.16.2 matplotlib<1.5.0 (see /Users/brianpollack/Coding/scikit-hep/.tox/py26/log/py26-1.log)', 1)

知道是什么导致了这个语法错误吗?

编辑:

已更新最佳答案:使用 -cconstraints.txt 强制执行 wheel

的降级版本

wheel dropped support for Python 2.6.

要安装 wheel 兼容 Python 2.6 安装版本 0.29:

source /Users/brianpollack/Coding/scikit-hep/.tox/py26/bin/activate‌​
pip uninstall wheel
pip install wheel==0.29.0

在tox.ini中:

[testenv]
deps=
    …
    py26: wheel==0.29.0
    …

或尝试 constraints file:

[testenv]
deps=
    …
    -cconstraints.txt
    …

constraints.txt:

wheel==0.29.0