【Anaconda】 Anaconda 配置虚拟环境路径
安装好anaconda后,默认安装在虚拟环境默认安装在 C盘,本文主要讲解其中的配置。
首先使用 conda info
查看当前的conda配置,如下图所示,本文主要讲解下述四个信息。
- conda version 版本信息
- channel URLs 下载网址
- package cache 包缓存路径
- envs directories 虚拟环境路径
1. conda修改虚拟环境的安装位置
使用 cmd 输入 下述代码,F:\anaconda\envs替换为需要设置的路径即可
conda config --add envs_dirs F:\anaconda\envs
注意:有时由于权限的问题,新的虚拟环境还是下载在C盘,
可以进入 .condaarc 文件夹,
修改为如下配置:
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
envs_dirs:
- F:\anaconda\envs
pkgs_dirs:
- F:\anaconda\pkgs
show_channel_urls: true
2. c盘的.conda文件夹
Conda 在 Windows 系统上默认会在用户的主目录下创建一个 .conda 文件夹,用来存储一些临时文件和包的缓存。这个路径是由 Conda 的默认配置决定的,不受你的 Conda 安装位置的影响。
如果你的主目录在 C 盘,那么 .conda 文件夹就会被创建在 C 盘。想要改变这个行为,你可以设置 CONDA_PKGS_DIRS 环境变量来改变包的缓存位置。你可以在命令行中使用以下命令来设置这个环境变量:
setx CONDA_PKGS_DIRS F:\anaconda\pkgs
这个命令会将包的缓存位置设置为 F:\anaconda\pkgs。你需要将 F:\anaconda\pkgs 替换为你希望的路径。请注意,这个命令只会影响以后的操作,已经下载的包不会被移动。
Conda 会将所有环境下载的包都放在一起。这是 Conda 的一个特性,被称为 “package cache”。这样做的好处是可以节省磁盘空间和下载时间。当你在一个环境中安装了一个包后,如果你在另一个环境中也需要这个包,Conda 就不需要再次下载这个包,而是直接从 package cache 中获取。
需要注意的是,虽然所有的包都被存储在一起,但是不同的环境是完全隔离的。每个环境都有自己的 Python 解释器和库,环境之间不会相互影响。
3. package cache 与 pkgs文件夹
package cach 用于指定pkgs文件夹(Anaconda下的pkgs文件夹是“Packages”的缩写)的路径,Anaconda的 pkgs 文件夹是Anaconda环境中用于存储已安装软件包及其依赖项的目录。这个文件夹扮演着至关重要的角色,它包含了以下几个关键特性:
-
包缓存:
pkgs文件夹作为Anaconda的包缓存,保存了通过conda install命令或Anaconda Navigator安装的所有软件包的副本。每当您安装或更新一个包时,Conda会将该包及其依赖项的压缩文件(通常为.tar.bz2格式)下载到此目录,并解压到相应的子目录中。
-
版本管理:
pkgs文件夹按照包名和版本号进行组织,每个包对应一个子目录。这种结构允许Conda在同一环境中安装不同版本的包,以及在多个环境中共享相同的包版本。当创建新的conda环境或者在现有环境中安装软件包时,Conda会优先从pkgs文件夹中复用已有的包,而不是重新下载,从而节省带宽和时间。
-
环境隔离与依赖解析:
虽然实际使用的包文件会被链接到各个conda环境的Lib/site-packages(在Windows上通常是这个路径,对于其他操作系统路径可能略有不同)目录下,但所有环境共享同一个pkgs文件夹,这有助于实现资源的有效利用和环境隔离。Conda通过软链接(符号链接)机制确保每个环境只看到并使用其指定版本的包,即使这些包实际存储在共用的pkgs文件夹内。
-
备份与恢复:
由于pkgs文件夹包含了所有已安装包的完整副本,它在某种程度上起到了备份作用。如果某个环境中的包文件意外损坏,Conda可以从pkgs中重新链接或恢复该包。
-
清理与空间管理:
随着时间和使用频率的增加,pkgs文件夹可能会变得相当大,因为它不仅存储当前环境使用的包,还包括历史安装过程中积累的、可能不再被任何环境引用的包版本。用户可以通过运行conda clean --packages或conda clean --tarballs命令来清理不再需要的包文件或压缩包,以释放磁盘空间。不过,在执行这类清理操作前,应确保没有其他环境依赖于这些可能被删除的包版本。
pkgs文件夹的清理命令:
conda clean --packages
或
conda clean --tarballs
此命令来清理Anaconda下pkgs中不再需要的包文件或压缩包,以释放磁盘空间。
参考文章:
https://blog.csdn.net/h965976237/article/details/137165022
https://blog.csdn.net/weixin_38650077/article/details/138332423
https://blog.csdn.net/weixin_45673389/article/details/131472528