【问题标题】:How to move .conda from one folder to another at the moment of creating the environment如何在创建环境时将 .conda 从一个文件夹移动到另一个文件夹
【发布时间】:2021-05-19 20:03:23
【问题描述】:

我必须连接到一台服务器,我的用户可以从 /home/users/user_name 访问一个小分区,在那里我有一个有限空间配额和一个更大的分区到 /big_partition/users/user

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

  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

【问题讨论】:

  • 这是一台已经安装了 Conda 的服务器吗?
  • 是的,它已经有了。

标签: python linux anaconda conda anaconda3


【解决方案1】:

配置环境和包默认位置

我猜想,尽管您努力将环境放在大分区上,但仍有一个默认的用户级包缓存,它正在填满主分区。至少,在大分区上设置一个新的package cache 和一个默认的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 环境。相反,您需要重新创建环境。由于您可能想也可能不想为此烦恼,因此我只对其进行概述。如果需要,我可以详细说明。

  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文件夹下的一些东西。

【讨论】:

    【解决方案2】:

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

    export CONDA_ENVS_PATH=.

    【讨论】:

    • 虽然这是可行的,但我会优先使用配置选项(根据我的回答),因为这就是它们的用途。环境变量是最高可能的执行,我建议仅将它们用于 ad hoc 覆盖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2010-09-08
    相关资源
    最近更新 更多