1. 故障前因:
我的python环境是3.9.12 早上用的好好的,用的flask环境,下午调试的时候发现忽然不行了,没有反映,我以为是项目bug,等我去看python虚拟环境有没有问题的时候,发现报上面错误(当时忘截图,借用了别人的图),蒙了........ 发现所有的python虚拟环境都报错,因为我有多个项目都是独立的环境,当时想,python出问题了,我去cmd下执行了一下python命令,发现提示的版本居然是3.10 ,坑爹的windows,肯定是自动强行给我升级了python导致了基础python版本不一致,所以导致失效
我检查了一下现在的python安装目录居然和我之前的base的python路径都不一致,然后我想着赶紧卸载新的python3.10,然后再重新安装python 3.9.12,可以发现并不好使,没有恢复问题,而且两个的安装目录也完全不一致。
2. 排查思路
找了网上很多文章,那些人只知道什么重新增加add一个新的虚拟环境就好了,这谁都会,还需要你教吗,问题原来安装的所有包不就没有了,而且新的虚拟环境可能安装的包可能版本都不一样,会存在兼容问题...... 必须修复之前的虚拟环境才能保证环境一致,不会有问题
- 尝试把新安装的目录的python.exe文件替换到旧的python.exe目录下试试替换,结果失败
很明显以前的文件都为0kb了,证明包都被卸载了或失效了,都是些无用的文件,替换不成功,估计还有别的地方没替换到,可能不是读的这个地方的python.exe
- 进到虚拟环境下的目录,找到pyvenv.cfg文件,打开文件,看看这个虚拟环境的配置信息,指定的home目录在哪里
原因它指定的目录是这个,找到这个目录
目录下原来也有Python.exe文件,也一样替换掉python.exe,因为原来的文件也是0kb大小,肯定是无效的。
此时验证一下是否有效,
验证
- 直接打开python.exe这个文件,看能不能打开python的终端,如果有问题是打不开的,会报错,如果能打开,证明就正常
打开正常
- 再次验证pycharm是否能读到虚拟环境和里面已经安装的包
到此问题恢复,谢谢大家,希望能给大家带来帮助