600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Python: PyCharm 启动后总是不停的 updating indexes...

Python: PyCharm 启动后总是不停的 updating indexes...

时间:2021-04-28 12:30:39

相关推荐

Python: PyCharm 启动后总是不停的 updating indexes...

Python: PyCharm 启动后总是不停的 updating indexes…

问题现象

updating indexes… 会在进度条将要到达终点时停止(图丢了。。。抱歉)

然后,会indexes很多无关目录(dirs),如下图:

首先说明下,这个问题很多人都遇到过,已经有了一些解决方案,但这些解决方案并不能够解决所有出现这个问题的情况,很不幸,我就是这遇到未知 bug 的人之一。

我最终解决这个问题之前,我尝试了目前已知的所有关于这个问题的方法,包括 百度、CSDN、知乎、博客园、Google、Stack overflow,然而没有一个Solution在我这里生效!

但,在尝试各种解决方案将近 6 h 后,我终于完全解决了这个问题!从根本上解决了这个问题!以后再遇到这个问题,按照这篇blog的思路,你一定可以解决!

同时,这个bug的解决绝对可以让你对windows 10的系统应用程序调用过程了然于胸,无比清晰!

先说原因:

首先,这个问题的出现,是由于多次安装、卸载Anaconda、PyCharm、Miniconda等开发环境,但每次卸载后仍有残余文件,造成PyCharm索引(Indexing)机制紊乱造成的。

那么为什么会持续不停的Updating indexes呢?

首先我们可以看到,Updating indexes正在进行相关目录的索引,但它却把很多其他的不在envs目录下的文件也索引了进来,因为索引的这些文件规模非常大,所以,它会一直不停的转(Updating indexes),但是非常奇怪的是,我们配置的conda 环境明明是D:\Anaconda\envs\test

而非C盘,那为什么会把C盘的文件索引进来呢?

起初,通过命令查看

conda config --show

发现,envs_dirs的字段值是这样的。

此时,我猜测是由于 envs_dirs 值造成的,于时移除掉envs_dirs中的envs的C盘环境配置路径可能会解决这个问题。

然而,事实却是:

添加路径(dirs)可以执行

然而, remove却是不允许操作的。。。

查了很多资料,也看过了conda的官方文档,然而并没有关于这个问题的说明,遂放弃这条思路。

虽然明白了不停的updating indexes...的原因,但起初的几小时内,还是没有解决。。。

Solutions I have been tried:

Excluded掉一些项目文件夹Invalidate and Restart卸载、重新安装PyCharm卸载、重新安装Anaconda同时重新安装AnacondaPyCharm删除C:/Users/你的用户名/PyCharm 下对应的缓存 cache文件夹及其下所有内容C盘变红,剩余空间太小,清理C盘空间重做系统

你可以依次尝试以上方案,除了 “重做系统” 以外,其他所有的Solutions都尝试过了以后,如果还没有效果,可以阅读以下内容:

既然可以明确只是 PyCharm、Anaconda 的问题,那么,只要重新安装PyCharm、Anaconda即可,没必要重做系统(重做系统是找不到奸细,而选择屠城的下下策👺)

windows 10 完全擦除 PyCharm、Anaconda

首先,在已经通过 “控制面板” 卸载PyCharm、Anaconda的基础上,再执行以下操作:

删除C:/Users/你的用户名/下包含conda、PyCharm字段的所有文件

删除C:\Users\你的用户名\AppData\Local下包含conda、PyCharm字段的所有文件

你也可以通过检索查看,C:\Users\你的用户名\下的conda、pycharm是否已全部删除。

如果还有残留文件,请删除;如果没有了,那么说明Anaconda、PyCharm在你的电脑中已经完全移除了!

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

但,不要急,还有一些非文件的东西,你没有从你的计算机中移除!

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

打开 “我的电脑 —> 高级设置 ---->环境变量

在上方用户变量下,找到所有关于Conda、PyCharm 的用户变量全部移除!

PYTHONPATH下,除了你自己手动安装的Python环境位置以外的其他所有值,全部移除!

在上方用户变量下,从Path中,找到之前安装的残余 PyCharm、Anaconda,删除

在下方系统变量下,找到所有关于Conda、PyCharm 的系统变量全部移除!

在下方系统变量下的Path中,找到所有关于Conda、PyCharm 的系统变量全部移除!

此时,你可以非常放心的说,你的电脑中关于Anaconda、PyCharm的所有文件以及信息已经全部移除,你的电脑如同从未安装过Anaconda、PyCharm一样!

擦除完成,重新安装 Anaconda、PyCharm

然后重新安装Anaconda、PyCharm!

安装目录不要选择C盘!

安装成功后,配置.condarc文件:

C:/Users/你的用户名/目录下,创建.condarc文件,在文件中添加如下信息:

envs_dirs:- D:\Anaconda\envschannels:- defaultsssl_verify: true

envs_dirs为你的Anaconda安装路径的envs

通过命令

conda config --show

查看:

.condarc 文件中设置的envs排在首位,这样做的原因是通过命令行直接创造环境会安装在首条envs_dirs.

这样,通过conda命令创建环境可以会直接安装在D:\Anaconda\envs这里。

创建conda环境

conda create -n torch_env python=3.8

打开PyCharm项目,选择对应的Conda环境,Apply

可以发现,PyCharm会很快的 updating indexes,并且只会 scanning and indexing 在.condarc中设置的、刚刚创建的envs

运行成功!

总结、反思:

问题得到了解决!

究其原因,是因为Anaconda多次安装、卸载,导致对应环境变量设置紊乱并且重复配置多个地址;

与此同时,是由于PyCharm索引 (indexing)机制是首先查找计算机的环境变量下,用户变量、系统变量以及 它们的Path中,字段conda、PYTHONPATHPyCharm对应的字段值(Value),从而选择所要索引(indexing)的目录。

由于一开始环境变量中,含有字段值C:\Users\91328\.conda,故,PyCharmPython Interpreter虽然设置的是D:\Anaconda\envs下的环境,却会因为PyCharm索引 (indexing)机制,去直接查找环境变量中的用户变量PYTHONPATHcondaPyCharm对应的字段值(Value)

发现字段值(Value)中包含C:\Users\91328\.conda\envs,故PyCharm索引 (indexing)机制会将C:\Users\91328\.conda\envs同父级目录的所有文件全部进行索引 (indexing);💀💀💀

但通常C:\Users\91328\下的文件大小会有几十个GB,所以,PyCharm索引 (indexing)如此大小的文件就会不停的一直 updating indexes… 直到Forever…

以上!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。