VSCode 1.92.0下WSL2 DevContainer中pytest特性安装失败求助
解决DevContainer中pytest特性安装失败(退出码28)的方案
问题根源分析
退出码28基本是超时导致的——VSCode 1.92.0大概率调整了DevContainer特性安装的超时阈值,要么就是这个第三方pytest特性的安装脚本在新版本环境里,网络请求或执行步骤耗时超出了限制。之前1.91.1能正常运行,说明老版本的超时设置更宽松,或者特性本身暂未适配新的VSCode环境。
具体解决办法
1. 给特性指定具体版本
别用默认的latest标签,试试指定该特性的稳定版本,修改devcontainer.json中的features配置:
"features": { "ghcr.io/hspaans/devcontainer-features/pytest@v1.0.0": {} // 替换为该特性仓库的最新稳定版本号 }
可以去该特性的GitHub仓库标签页获取最新可用的稳定版本。
2. 延长安装超时时间
直接给DevContainer特性安装环节设置更长的超时时间,在devcontainer.json中添加:
"remoteEnv": { "DEVCONTAINER_FEATURE_INSTALL_TIMEOUT": "120" // 单位为秒,可根据实际情况调整数值 }
3. 绕过特性,手动安装pytest
如果特性安装始终失败,直接绕开它手动安装更稳妥:
- 方法一:在DevContainer的Dockerfile中添加安装命令:
RUN pip install pytest pytest-cov # 按需添加其他pytest相关依赖
- 方法二:在devcontainer.json的
postCreateCommand中配置安装命令:
"postCreateCommand": "pip install pytest pytest-cov"
4. 临时回退VSCode版本
如果以上方法都无效,可暂时回退到VSCode 1.91.1使用,等待特性作者完成对1.92.0版本的适配后再更新。
验证方法
修改配置后执行重建容器操作,观察安装日志是否不再出现退出码28的错误;容器启动完成后,在终端执行pytest --version,能正常显示版本号即说明安装成功。
内容的提问来源于stack exchange,提问作者H.Sheng
相关产品推荐
相关产品推荐

