Travis-CI基于tox搭建py3.6测试环境时virtualenv启动报错如何解决
修复方案
根因说明
这个报错是virtualenv 20.9.0及以上版本的已知兼容性问题,该版本开始部分逻辑不再适配已经停止官方维护的Python 3.6版本,会在虚拟环境创建阶段抛出无额外信息的StopIteration异常,和你观察到的版本变化情况完全吻合。
可选用的修复方法
- 临时快速修复:在Travis CI的执行流程里,运行tox之前先执行
pip install virtualenv==20.8.1,将virtualenv锁定到你之前正常运行的20.8.1版本即可,该方案不需要改动其他配置,适配成本最低。 - 绕开第三方依赖修复:修改项目的tox.ini配置,在[testenv]段落中添加
venv_backend = venv参数,指定使用Python标准库内置的venv模块创建虚拟环境,不需要依赖第三方virtualenv,也可以解决该兼容性问题。 - 长期适配修复:将测试用的Python版本从3.6升级到3.7及以上仍在维护的版本,新版virtualenv对这些版本的适配没有问题,同时也能获得后续的安全补丁和功能更新,是更推荐的长期解决方案。
内容的提问来源于stack exchange,提问作者Wei Chen
相关产品推荐
相关产品推荐

