解决PyCharm打开出现Cannot load settings from file错误
背景
pycharm打开过的项目,关闭项目或者IDE后再次打开,右下角会出现cannot load settings from file,如图1所示。
图1
随后,我浏览许多国内外的论坛,帖子,以及pycharm官网的论坛,找到了如下方法:
- 删除项目中的.idea文件夹
- 重新打开项目,IDE会自动重建.idea文件夹
但是,这么做不行。
原因是:
- 重新打开后,重构过程会进行Indexing,这将会花费相当长的时间
- 在Scanning Installed Module的过程不会置于后台,而是会变成前台任务,并且卡死整个Pycharm。
至此,我认为是自己的anaconda有问题,把自己的anaconda删除掉准备重装,然而重装的过程中出现了问题:安装日志显示有一个包死活安不上,导致anaconda回滚安装任务,导致安装失败。
暂行的解决办法
先按下我的anaconda挂了不去管,后来我自己又摸索出了两种治标不治本的解决办法。至于为什么不治本,我将会在长期解决中用最简短的话说明。
簪行的解决办法分为短期解决与长期解决两种。
短期:
- 每次在打开项目之前,先删除.idea文件夹
- 将整个项目目录放到一个新的路径中
- 在pycharm中打开项目
这么做,每次重新打开项目,都要重复一遍上述操作。
长期:
回到图1,我发现报错信息中显示是因为.idea中有一个文件似乎因为编码的问题导致无法读取,进而导致项目无法导入。
于是打开该.iml文件,发现文件是乱码,如图2所示:
图2
原来是因为.iml文件被安全软件给加密了,导致乱码。
这个软件的名字是:亿赛通电子文档安全管理系统。我的电脑是公司电脑,之前在VSCode中使用npm安装vue或者其他前端的包的时候,也是这个软件加密,导致安装过程中会数次报错中断,需要反复安装多次才行。
知道原理,那么解决办法就是找到一个没有被加密的.iml文件,将其中的内容复制出来。
我在这里贴出来一个比较常用的.iml文件内容:
bash
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
将这个东西替换被加密的.iml,注意编码格式是UTF-8,重新在IDE打开就行了。
加密真的是害人不浅(づ-̩̩̩-̩̩̩_-̩̩̩-̩̩̩)づ...