打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python: PyCharm 启动后总是不停的 updating indexes...
userphoto

2023.02.26 甘肃

关注

问题现象

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:

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

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

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

windows 10 完全擦除 PyCharm、Anaconda

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

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


  2. 删除 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\envs
channels:
  - defaults
ssl_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…

以上!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【Anaconda】修改conda默认envs
anaconda和pycharm哪个好用?
将conda虚拟环境设置为电脑默认的python环境
python学习
Pycharm解释器环境Virtualenv/Conda的区别
Pycharm和Anaconda的使用方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服