如何在创建环境时将.conda从一个文件夹移动到另一个文件夹



我必须连接到一个服务器,在该服务器上,我的用户可以访问/home/users/user_name中的一个小分区,在那里,我有有限的空间配额,并且有一个更大的分区进入/big_partition/users/user

在我登录到该服务器之后,我将在bigging处到达/home/users/user_name。之后,我将执行以下步骤。

  1. cd /big_partition/users/user
  2. create conda --prefix=envs python=3.6

在第4行,它说Package plan for installation in environment /big_partition/users/user/envs:,这是可以的。

  1. y,我会收到以下消息。

    OSError: [Errno 122] Disk quota exceeded: '/home/users/user_name/.conda/envs/.pkgs/python-3.6.2-0/lib/python3.6/unittest/result.py'

在创建此环境时,有人能帮助我了解如何将.conda文件夹从/home/users/user_name移动到/big_partition/users/user吗?

配置环境和包默认位置

我想,尽管你努力将环境放在大分区上,但仍然有一个默认的用户级包缓存,它正在填充主分区。至少,在大分区上设置一个新的包缓存和一个默认环境目录:

# create a new pkgs_dirs (wherever, doesn't have to be hidden)
mkdir -p /big_partition/users/user/.conda/pkgs
# add it to Conda as your default
conda config --add pkgs_dirs /big_partition/users/user/.conda/pkgs
# create a new envs_dirs (again wherever)
mkdir -p /big_partition/users/user/.conda/envs
# add it to Conda as your default
conda config --add envs_dirs /big_partition/users/user/.conda/envs

现在,您不必再为使用--prefix标志而烦恼了——默认情况下,您的命名环境(conda create -n foo(将在此目录中创建,您可以通过名称而不是目录(conda activate foo(激活。

传输以前的环境和包缓存

不幸的是,没有一种在不破坏硬链接的情况下跨文件系统移动Conda环境的好方法。相反,您需要重新创建您的环境。既然你可能想也可能不想麻烦,我只想概述一下。如果需要,我可以详细说明。

  1. 归档环境使用conda env export -n foo > foo.yaml(每个环境一个。(
  2. 移动包缓存将旧包缓存(/home/users/user_name/.conda/envs/.pkgs/(的内容复制到新包缓存
  3. 重建环境使用conda env create -n foo -f foo.yaml

同样,您可以完全跳过这一步。这主要是如果你想非常彻底地转移,而不必为你已经创建的环境重新下载东西。

之后,您可以删除旧~/.conda/envs/pkgs文件夹下的一些内容。

我找到了解决方案。我所需要做的就是用我想成为.conda的路径导出CONDA_ENVS_PATH

export CONDA_ENVS_PATH=.

相关内容

  • 没有找到相关文章

最新更新