我有一个项目,该项目使用tox
对CI进行各种检查。我可以在本地运行它。关键是,当flake8
在Tox上被调用时,它会使用setup.py中的插件版本,因此,在这种情况下-最新的插件版本(因为我没有将它们限制为==
或<=
)。我还在我的virtualenv中本地安装了flake8及其插件(在这种情况下,例如wemake-python-styleguide
)。
问题是,与安装在tox环境中的软件包相比,有些软件包已经过时了。而且我在本地和管道上都遇到了不同的错误(我的意思是我可以在本地运行tox,但是在终端中运行flake8
所花费的时间更长)。
所以我的问题是:有没有办法更新所有软件包?我的意思是即使使用pip install -e "."
标志,我也可以运行pip install -e ".[dev,tests]"
或--upgrade
,但它仍然无法更新我的软件包。我检查过:tox使用例如wemake-python-styleguide==0.13.1
,在我的本地virtualenv中,我有wemake-python-styleguide==0.12.5
。
一种方法是重新创建本地virtualenv或tox环境
您可以使用tox -r
执行此操作
另请注意,较新版本的tox
具有创建本地virtualenv的便捷命令(在.tox
之外-tox --devenv ENVDIR
] >>
例如,如果您想通过./venv38
中的设置制作py38
,则可以调用以下内容:
tox --devenv venv38 -e py38
或者,您可以使用pip升级软件包,但这可能会留下不需要的软件包:
pip install --upgrade --upgrade-strategy eager -e .[dev,tests]
(免责声明:我是
tox
的维护者之一,并添加了该功能-也是当前的flake8
维护者,但在这里似乎与该问题无关]