无法在Anaconda环境中使用pre-commit run --all-files:缺少匹配版本的ruamel.yaml

参考来源:https://stackoverflow.com/questions/68794749/unable-to-run-pre-commit-in-anaconda-environment

问题

与电脑两地隔离了半个月,今天开机commit的时候忽然弹出了下面的错误(自己图忘存了,图源置顶链接),pre-commit没法用了。
在这里插入图片描述
它说没有匹配版本的ruamel.yaml这个包,但是检查当前虚拟环境中有这个包,而且保险起见我又重新装了一下这个包。
在这里插入图片描述
再次尝试依旧不行,看起来是SSL无法连接到那些URL之类的,pre-commit的环境不能自己下载这个包了。又检查了SSL的版本、网络连接、切换其他的虚拟环境、更新pre-commit等等等等,都没有结果。

暂时解决

最后发现置顶连接的中有人提到了同样的问题,最下面一个回答让人发现可能解决的方案。

Install and configure pre-commit in your base conda environment instead of your project's conda environment.

他的意思是说pre-commit使用的环境是(base)这个conda环境,不是我现在的这个虚拟环境,所以安不上可能不是我现在环境的问题,而是base环境的问题。于是我切换到了base环境(依旧无法使用pre-commit)然后更新了一波conda以及所有的包。

conda update conda
conda upgrade --all

这时候在base环境下使用pre-commit run --all-files成功运行了,如置顶链接的最后一个回答的两个结果。在base环境下安装好pre-commit的环境的后,此时切回自己的环境也能成功使用pre-commit了。

疑惑

虽然跑起来了,但是其中还是发现一点问题让我没有想通。

  1. 之前所有的环境都是可以使用了,忽然就不行了,不知道为啥(莫非啥版本之类的变了、什么东西更新了)。
  2. 当base环境的pre-commit能使用后,我删除了cache中的pre-commit,尝试在其他虚拟环境(非上面那个环境)重新run来构建pre-commit的环境。发现之前所有环境都不能用,现在在其他环境也可以和base环境一样使用了(难道是更新了conda的原因?),但唯独上面那个环境还是一样的错误。我也尝试了升级上面环境的所有包,检查了是否存在其他问题,依旧不行,该环境的SSL、pip、setuptools等版本与base版本都相同。

关于上面的疑惑还没解决,总之目前可以先使用base或其他环境装好pre-commit的环境之后再切换到上面的环境进行commit,还是可以先将就用着。这里也记录一下,以后遇到更好的说法和解决方法再来记录。也希望有看到的同病相怜然后解决了的大佬来指导一下~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值