如何在创建环境时将 .conda 从一个文件夹移动到另一个文件夹
How to move .conda from one folder to another at the moment of creating the environment
我必须连接到一台服务器,在该服务器上我的用户可以访问 /home/users/user_name
中的一个小分区,其中我的配额有限 space 并且更大的分区进入 /big_partition/users/user
登录到该服务器后,我将到达 /home/users/user_name
的 bigging。之后,我正在执行以下步骤。
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
?
我找到了解决方案。我需要做的就是用我想成为 .conda
的路径导出 CONDA_ENVS_PATH
export CONDA_ENVS_PATH=.
配置环境和包默认位置
我猜想,尽管您努力将您的环境放在大分区上,但仍然有一个默认的用户级 程序包缓存 并且它正在填满整个家划分。至少,在大分区上设置一个新的package cache and a default environments directory:
# 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
标志而烦恼 - 您的 named 环境 (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
文件夹下的一些东西。
我必须连接到一台服务器,在该服务器上我的用户可以访问 /home/users/user_name
中的一个小分区,其中我的配额有限 space 并且更大的分区进入 /big_partition/users/user
登录到该服务器后,我将到达 /home/users/user_name
的 bigging。之后,我正在执行以下步骤。
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
?
我找到了解决方案。我需要做的就是用我想成为 .conda
export CONDA_ENVS_PATH=.
配置环境和包默认位置
我猜想,尽管您努力将您的环境放在大分区上,但仍然有一个默认的用户级 程序包缓存 并且它正在填满整个家划分。至少,在大分区上设置一个新的package cache and a default environments directory:
# 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
标志而烦恼 - 您的 named 环境 (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
文件夹下的一些东西。