解决 Windows 环境下 conda 切换 Python 版本报错 NoWritablePkgsDirError: No writeable pkgs directories configured.
1. 起因
今天运行一个 flask 项目,报错:AttributeError: module 'time' has no attribute 'clock'

一查才发现,Python3.8 不再支持 time.clock!

好家伙,公司工作环境要 3.8,那我不可能卸载呀,也不想安装别版本的环境,那就用 conda 环境吧,一查,电脑的 conda 环境版本是 3.9,那可不行,安装一下 Python3.7 版本,一安装,就开始报错了
PS C:\Users\HUAWEI> conda install python==3.7 anaconda=custom
Collecting package metadata (current_repodata.json): failed
NoWritablePkgsDirError: No writeable pkgs directories configured.
- D:\Anaconda3\pkgs

2. 解决
2.1 设置环境和包的路径
conda config --add pkgs_dirs 自定义路径(我是D:\Anaconda3\pkgs)
conda config --add envs_dirs 自定义路径(我是D:\Anaconda3\envs)
再尝试一下安装 Python 安装,发现还是不行
2.2 查看修改 conda 配置
输入一下命令查看 conda 配置
conda info

查看 conda 中 base environment 是否是只读,如果是只读的话,就打开该路径,把只读取消

然后应用

等修改完成,重新打开终端,输入 conda info,如果变成 whitable,就证明成功了,就可以重新运行安装 Python3.7 版本命令,发现成功了。【如未变成 whitable 请看最后】

2.3 重新取消只读的方法
如果还是 read only,你去看看刚才刚取消的只读是不是又打勾打上了,如果打上了,就执行以下步骤:
打开 base environment 路径,右击文件夹 属性--安全:

点击 Users,可以看到 Users 是没有“修改、写入”权限的,点击 高级--更改权限

选中 Users 会发现只能查看,不能编辑,所以我们添加一个。点击 添加--选择主体--输入Users--点击检查名称--确认



勾上完全控制--确定

等权限修改完毕,重新打开终端,输入 conda info,如果变成 whitable,就证明成功了,就可以重新运行安装 Python3.7 版本命令,发现成功了。