如何在travis构建中更新tox中的setuptools
我正在尝试用最新版本的setuptools开发一个Python程序。但是每次构建都会失败,并显示以下信息:
$ tox -e $TOX_ENV
GLOB sdist-make: /home/travis/build/kartoch/myapp/setup.py
py26 create: /home/travis/build/kartoch/myapp/.tox/py26
py26 inst: /home/travis/build/kartoch/myapp/.tox/dist/myapp-0.1.0.zip
ERROR: invocation failed, logfile: /home/travis/build/kartoch/myapp/.tox/py26/log/py26-1.log
[...]
Unpacking ./.tox/dist/myap-0.1.0.zip
Running setup.py (path:/tmp/pip-P4VhFx-build/setup.py) egg_info for package from file:///home/travis/build/kartoch/myapp/.tox/dist/myapp-0.1.0.zip
The required version of setuptools (>=5.4.1) is not available,
and can't be installed while this script is running. Please
install a more recent version first, using
'easy_install -U setuptools'.
(Currently using setuptools 3.6 (/home/travis/build/kartoch/myapp/.tox/py26/lib/python2.6/site-packages))
Complete output from command python setup.py egg_info:
目前遇到的问题是:
- 在travis.yml中更新或重新安装setuptools没有效果,因为tox生成的'virtualenv'中有之前的setuptools版本。
- 在tox调用setup.py之前无法升级或重新安装setuptools(依赖项是在这一步之后安装的)。
有没有什么想法?
我用以下内容启动我的测试'.travis.yml':
language: python
env:
- TOX_ENV=py26
- TOX_ENV=py27
install:
- pip install tox
script:
- tox -e $TOX_ENV
tox的配置('tox.ini')如下:
[tox]
envlist = py26, py27
[testenv]
commands =
nosetests
[testenv:py26]
[testenv:py27]
3 个回答
1
在 tox.ini 文件中:
deps =
setuptools=38.2.5
这段设置会阻止在tox环境中安装这个版本的Python。然后,它会安装egg所需要的那个版本。
5
我通过在install
部分添加一个更新版的setuptools来解决这个问题:
install:
- pip install -U pip wheel
- pip install setuptools==24.0.3
- pip install -r ourapp/requirements/requirements.txt
8
使用:
[testenv]
deps =
setuptools==5.4.1 # Or whatever version you need
commands =
nosetests