最近在重新学习机器学习相关的课程,用到了Anaconda。但是最新版Anaconda在安装过程中已经默认不允许将Anaconda的bin目录添加到系统环境变量里了,这在使用中给我们带来了很多不便。本文将介绍在国内环境中如何在安装Anaconda后给Anaconda进行换源、添加环境变量、使用方式优化等操作。

Anaconda换源

由于各镜像站的官方文档已经足够详细,这里给出阿里清华这两个开源镜像站的Anaconda换源帮助页面。

添加Anaconda环境变量

由于Anaconda最新版本在安装过程中已经默认不允许将Anaconda的bin目录添加到系统环境变量里,表现为安装过程中该选项是灰色不可勾选状态。但是本人在安装matplotlib库的过程中遇到了CondaSSLError: OpenSSL appears to be unavailable on this machine. OpenSSL is required to download and install packages 的错误。这是因为本机上没有安装openssl程序。但实际上,Anaconda已自带该程序。在允许将Anaconda的bin目录添加到系统环境变量里的年代,没有出现过这样的问题。

值得注意的是,网上有些解决方案,将git的usr\bin目录添加到系统环境变量中。虽然该文件夹含有openssl程序,但是该文件夹同时含有ls、cat等程序。与Windows系统PowerShell和CMD的一些alias有严重冲突。而且本人在将其添加到系统环境变量之后,Anaconda在安装matplotlib库的时候仍然报相同错误。因此本人猜测git的openssl程序与Anaconda所需的openssl程序有兼容性问题。

为了解决Anaconda仍然依赖bin目录下程序的问题,我们需要将Anaconda的bin目录添加到系统环境变量中。如果你使用了Anaconda的默认安装路径在系统Path环境变量中添加以下值:%PROGRAMDATA%\Anaconda3\Library\bin。否则请在Path环境变量中添加Anaconda安装目录下Library\bin文件夹。

此时,关闭所有窗口,重启Anaconda命令行窗口,再安装matplotlib,应当可以正常安装了。

使用Windows Terminal直达Anaconda Prompt与虚拟环境

Windows Terminal直达Anaconda Prompt

众嗦粥之,Windows Terminal是WSL2的理想配套。它速度快、可配置、外观漂亮,并且提供了Windows和Linux开发的所有优点。

虽然在将Windows Terminal作为默认终端应用程序的Win11中直接打开Anaconda (Powershell) Prompt后即可使用Windows Terminal运行命令,但黑黢黢的窗口和默认base环境还是令人感到有些不便。你可以利用Windows Terminal的配置文件,将Windows Termial设置为默认打开某个虚拟环境,以及自定义主题、图标等操作。

要利用Windows Terminal直达Anaconda控制台,可以在Windows Terminal的设置中先添加一个新的配置文件,然后选择复制命令提示符即可。

然后,在“命令行”设置中填入以下命令。在Windows Terminal选择该配置文件后,Windows Terminal会在CMD中运行这段命令用于启动Anaconda:

%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\ProgramData\Anaconda3' "

之后,进行一些相应的美化配置即可。若需要Anaconda的图标文件,可以使用该小工具提取。该工具安装后,在Anaconda安装目录下的_conda.exe文件上右键属性,选择Icons选项卡,即可查看该exe文件的所有ico图标并提取。由于该网站的CDN会将图片自动转换为WebP格式,所以暂时不提供ico图标下载。

Windows Terminal直达Anaconda虚拟环境

在以上配置中,Anaconda (Powershell) Prompt默认总是会使用base环境,非常不方便。其实,只需要在以上命令最后的conda activate命令后的参数中,将'C:\ProgramData\Anaconda3'改为虚拟环境的名称,即可让Windows Terminal直达Anaconda虚拟环境。建议复制一个Anaconda的配置文件在修改,保留进入base和自定义虚拟环境的入口,方便删除虚拟环境后再进入base环境。