通常情况下,pycharm可以删除不同虚拟环境的解释器(interpreter),通过:Preferences->Project->Python Interpreter->show all
然后选中你想要删除的环境,点击减号即可:
但是我发现,点击删除之后,重新打开环境设置,被删除的环境依然存在。
查找了一下资料,jetbrain论坛上也有人碰到这样的问题。
有的人通过删除后重启pycharm,有的人通过清除缓存(File->Invalidate Caches)可以解决。 但是这两个方法对我都不管用。
找到了pycharm存放虚拟环境的文件,jdk.table.xml。
mac路径:/Users/<username>/Library/Application Support/JetBrains/PyCharm2020.2/options
windows路径:C:\Users<username>.PyCharmCE2018.3\config\options\jdk.table.xml
打开后发现,确实保存了虚拟环境的信息:
直接删除<jdk version="2">......</jdk>的内容,再打开pycharm,确实把内容删掉了。
正常情况下,在pycharm删除的虚拟环境,会在这个xml文件里删除的。
通过打开pycharm的log,发现操作过程中出现了错误。
log在mac的路径:/Users/<username>/Library/Logs/JetBrains/PyCharm2020.2/idea.log
发现出现如下错误:
奇怪的是,错误内容显示的应该是虚拟环境重名的关系,但是我的没有重名。具体的错误原因,目前还没找到。
另外说一点,我将jdk.table.xml文件整个删除之后,重启pycharm,再设置interpreter之后,重新生成了jdk.table.xml文件,这时候我再进行的pycharm删除操作,就完全正常了。
我猜测是这个xml的文件出了什么bug.
总之,出现了无法删除虚拟环境,可以尝试重启,清除缓存,删除jdk.table.xml文件内的内容来解决。
同时,如果出现了虚拟环境同名,也可以通过删除同名的虚拟环境或者删除它来解决。