conda 推荐配置
自用 miniconda 配置。特点:
- 使用清华开源镜像站
- 将虚拟环境保存在其他硬盘
- 避免使用默认的 base 环境
anaconda or miniconda ?
本配置同时适用于 anaconda 和 miniconda,但我推荐使用 miniconda。
anaconda 自带了太多的库,miniconda 相比起来简洁很多。
Windows 下安装
从官网下载安装包,安装,在中间步骤选择 register as system python
啥的。
安装好后,在%userprofile%
目录新建文件.condarc
,进行换源,参考 清华开源镜像站 中的示例。但存在一些修改。
推荐配置如下:
auto_activate_base: false
,避免直接进入 base 环境,后续将分析这一步的目的。envs_dirs
之后使用 conda 创建的虚拟环境默认安装在 C 盘,C 盘比较寸土寸金,所以换个地方存放。
打开控制台,输入conda
理应返回 找不到指令
之类的错误提示,这是正常的。然后网上的教程就会让我们向系统 Path 变量中添加conda
的路径,经过我的实践,这个做法不是最优的,而且可能导致后续一些非常令人烦躁的问题。
下面给出我认为最优的解决方案:
-
使用管理员权限打开 powershell
Warning
如果是 win10 系统且自行安装了最新版本的 powershell 和 windows terminal。那系统的pwsh和terminal的pwsh大概率不是一个东西。系统的pwsh 是一个老版本的 pwsh,而 win terminal 中的 pwsh 大概率是自行安装的新版本的 pwsh。
vscode 中默认使用的大概率是系统的老版本 pwsh。
要小心这两个不同版本的 pwsh 造成困扰。
win11 系统暂未测试。
-
执行下述命令
-
等待命令执行完毕,重新打开 powershell,输入
conda
可以看到命令被正常执行
解释:conda 为了管理版本,需要在 shell 中做很多工作,这些工作远远比我们自己在 path 中添加一些路径复杂,自行添加环境变量并且没有执行 conda init
会导致 conda 还没有正常 activate 一个环境,我们在命令行中就能直接使用 base 环境的 python,相当于绕过了 conda 的管理机制,所以就不要自作多情给 conda 帮倒忙了。
现在再说配置auto_activate_base: false
的原因,我建议不要使用base环境。因为 base 环境是 conda 用于运行自身的环境,base 的 sites-packages
目录也是被默认设置为 readonly 的,conda 官方就不太想让我们修改 base 环境中的包。如果在 base 环境下使用 pip install
,因为没有访问 base 的 sites-packages
,pip 会把库安装到 %appdata%/Python
下,占用可怜的 C 盘空间。经过测试,此时就算修改sites.py
中的USER-SITES
也没用。
所以,我建议不要使用base环境,而是重新创建一个名为 default 的环境,然后配置 powershell 的的$userprofile
,每次运行前激活 default
环境。这样既方便,又能定义环境安装位置和pip安装库位置,也能保证使用的环境是最干净的(base 环境默认安装了 pyyaml 等 conda 会用到的库)。
Linux 下安装
基本同 win 配置,无非是改改路径、改改 .bashrc
。