updating indexes… 会在进度条将要到达终点时停止(图丢了。。。抱歉)
然后,会 indexes 很多无关目录(dirs),如下图:
我最终解决这个问题之前,我尝试了目前已知的所有关于这个问题的方法,包括 百度、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
起初,通过命令查看
conda config --show
发现,envs_dirs的字段值是这样的。
然而,事实却是:
添加 路径(dirs) 可以执行
虽然明白了不停的 updating indexes...
的原因,但起初的几小时内,还是没有解决。。。
C:/Users/你的用户名/
PyCharm 下对应的 缓存 cache 文件夹及其下所有内容重做系统
你可以依次尝试以上方案,除了 “重做系统
” 以外,其他所有的 Solutions 都尝试过了以后,如果还没有效果,可以阅读以下内容:
既然可以明确只是 PyCharm、Anaconda 的问题,那么,只要重新安装PyCharm、Anaconda即可,没必要重做系统(重做系统是找不到奸细,而选择屠城的下下策👺)
首先,在已经通过 “控制面板” 卸载 PyCharm、Anaconda 的基础上,再执行以下操作:
删除C:/Users/你的用户名/
下包含 conda、PyCharm 字段的所有文件
删除 C:\Users\你的用户名\AppData\Local
下包含conda、PyCharm字段的所有文件
C:\Users\你的用户名\
下的 conda、pycharm 是否已全部删除。完全移除了!
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
打开 “我的电脑 —> 高级设置 ----> 环境变量
”
在上方 用户变量
下,找到所有关于Conda、PyCharm 的 用户变量
, 全部移除!
PYTHONPATH
下,除了你自己手动安装的Python环境位置以外的其他所有值,全部移除!
用户变量
下,从 Path 中,找到之前安装的残余 PyCharm、Anaconda,删除!在下方 系统变量
下,找到所有关于Conda、PyCharm 的 系统变量
, 全部移除!
在下方 系统变量
下的 Path 中,找到所有关于Conda、PyCharm 的 系统变量
, 全部移除!
此时,你可以非常放心的说,你的电脑中关于 Anaconda、PyCharm 的所有文件以及信息已经全部移除,你的电脑如同从未安装过 Anaconda、PyCharm 一样!
然后重新安装 Anaconda、PyCharm!
安装目录不要选择C盘!
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 create -n torch_env python=3.8
打开PyCharm项目,选择对应的 Conda 环境,Apply!
运行成功!
问题得到了解决!
究其原因,是因为 Anaconda 多次安装、卸载,导致对应环境变量设置紊乱并且重复配置多个地址;
与此同时,是由于 PyCharm 的 索引 (indexing) 机制是首先查找计算机的环境变量下,用户变量、系统变量以及 它们的 Path 中,字段 conda、PYTHONPATH
、PyCharm
对应的 字段值(Value),从而选择所要 索引(indexing)
的目录。
由于一开始 环境变量 中,含有字段值 C:\Users\91328\.conda
,故,PyCharm 的 Python Interpreter
虽然设置的是 D:\Anaconda\envs 下的环境,却会因为 PyCharm 的 索引 (indexing) 机制,去直接查找 环境变量 中的 用户变量 PYTHONPATH
、conda
、PyCharm
对应的 字段值(Value)。
发现 字段值(Value) 中包含 C:\Users\91328\.conda\envs
,故 PyCharm 的 索引 (indexing) 机制会将 C:\Users\91328\.conda\envs
同父级目录的所有文件全部进行 索引 (indexing);💀💀💀
C:\Users\91328\
下的文件大小会有 几十个GB,所以,PyCharm 索引 (indexing) 如此大小的文件就会不停的一直 updating indexes… 直到 Forever…
以上!
联系客服