我必须连接到一个服务器,在该服务器上,我的用户可以访问/home/users/user_name
中的一个小分区,在那里,我有有限的空间配额,并且有一个更大的分区进入/big_partition/users/user
在我登录到该服务器之后,我将在bigging处到达/home/users/user_name
。之后,我将执行以下步骤。
cd /big_partition/users/user
create conda --prefix=envs python=3.6
在第4行,它说Package plan for installation in environment /big_partition/users/user/envs:
,这是可以的。
-
按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环境的好方法。相反,您需要重新创建您的环境。既然你可能想也可能不想麻烦,我只想概述一下。如果需要,我可以详细说明。
- 归档环境使用
conda env export -n foo > foo.yaml
(每个环境一个。( - 移动包缓存将旧包缓存(
/home/users/user_name/.conda/envs/.pkgs/
(的内容复制到新包缓存 - 重建环境使用
conda env create -n foo -f foo.yaml
同样,您可以完全跳过这一步。这主要是如果你想非常彻底地转移,而不必为你已经创建的环境重新下载东西。
之后,您可以删除旧~/.conda/envs/pkgs
文件夹下的一些内容。
我找到了解决方案。我所需要做的就是用我想成为.conda
的路径导出CONDA_ENVS_PATH
export CONDA_ENVS_PATH=.