Skip to content

修改Miniconda的数据目录

可以使用以下命令来查看 Conda 的配置信息

Bash
conda config --show

conda config --show envs_dirs pkgs_dirs
conda config --show

conda config --show envs_dirs pkgs_dirs

查看输出中 envs_dirspkgs_dirs属性:

Bash
# 环境目录,当你创建新的 Conda 环境时,这些环境会被安装在上述目录里。
envs_dirs:
  - /root/miniconda3/envs
  - /root/.conda/envs
  
# 包缓存目录,在下载和安装包时,Conda 会把包文件缓存到这些目录中。
pkgs_dirs:
  - /root/miniconda3/pkgs
  - /root/.conda/pkgs
# 环境目录,当你创建新的 Conda 环境时,这些环境会被安装在上述目录里。
envs_dirs:
  - /root/miniconda3/envs
  - /root/.conda/envs
  
# 包缓存目录,在下载和安装包时,Conda 会把包文件缓存到这些目录中。
pkgs_dirs:
  - /root/miniconda3/pkgs
  - /root/.conda/pkgs

img

确认目标目录是否存在

假如想移动 miniconda 的环境目录和包缓存目录到/data/conda/下,首先要保证 /data/conda/ 及其子目录(用于存放环境和包缓存)已经存在,并且当前用户对这些目录有读写权限。若不存在,可使用如下命令创建:

Bash
mkdir -p /data/conda/envs
mkdir -p /data/conda/pkgs
mkdir -p /data/conda/envs
mkdir -p /data/conda/pkgs

修改 .condarc 文件

手动编辑 /root/miniconda3/.condarc 文件,添加或修改如下内容:

javascript
envs_dirs:
  - /data/conda/envs
  - /root/miniconda3/envs
  - /root/.conda/envs
pkgs_dirs:
  - /data/conda/pkgs
  - /root/miniconda3/pkgs
  - /root/.conda/pkgs
envs_dirs:
  - /data/conda/envs
  - /root/miniconda3/envs
  - /root/.conda/envs
pkgs_dirs:
  - /data/conda/pkgs
  - /root/miniconda3/pkgs
  - /root/.conda/pkgs

在编辑时,将新目录放在列表的首位,这样新创建的环境和下载的包就会优先使用新目录。添加后实例如图:

img

验证修改

再次运行 conda config --show 命令,确认 envs_dirspkgs_dirs 已经更新:

javascript
conda config --show envs_dirs pkgs_dirs
conda config --show envs_dirs pkgs_dirs

img

注意事项

  • 已有数据处理:修改配置后,之前创建的环境和下载的包不会自动迁移到新目录。
  • 权限问题:要确保 /data/conda/ 及其子目录的权限设置正确,否则在创建环境或下载包时可能会出现权限错误。

验证配置是否生效

尝试创建一个新的 Conda 环境,看看环境是否被创建到了 /data/conda/envs 目录下,以此来验证配置是否已经生效:

Bash
conda create -n test_new_env python=3.10
conda create -n test_new_env python=3.10

创建完成后,检查 /data/conda/envs 目录下是否有 test_new_env 这个文件夹。

img

激活环境并安装包测试:

Bash
conda activate test_new_env
# 在激活的环境中安装包,例如安装 pandas:
conda install pandas
conda activate test_new_env
# 在激活的环境中安装包,例如安装 pandas:
conda install pandas

pandas安装完成后,查看 /data/conda/pkgs目录下是否有新的安装文件生成:

img

迁移现有数据(可选)

如果你已经有现有的包缓存或环境,并希望迁移到新的位置,你需要手动移动这些数据到新的目录:

  • 迁移包缓存:如果你有现有的包缓存,可以将其从默认位置复制到 /data/conda/pkgs。例如:
javascript
cp -r ~/miniconda3/pkgs/* /data/conda/pkgs/
cp -r ~/miniconda3/pkgs/* /data/conda/pkgs/
  • 迁移环境:对于已经存在的环境,你可以导出环境列表并重新创建它们在新的位置:
    • 导出环境列表:

    • javascript
      conda env list > environments.txt
      conda env list > environments.txt
    • 根据 environments.txt 中列出的环境名称,在新的环境目录下重新创建它们:

    • javascript
      conda create --prefix /data/conda/envs/<env_name> --clone <old_env_path>
      conda create --prefix /data/conda/envs/<env_name> --clone <old_env_path>

请注意,迁移过程可能需要一些时间,特别是当你有许多大型包时。