【问题标题】:Migrate conda environment to a machine that does not have internet (or fast internet)将 conda 环境迁移到没有互联网(或快速互联网)的机器
【发布时间】:2019-02-13 18:29:35
【问题描述】:

我在 python 中使用 conda 并在环境中安装了很多依赖项。 我需要将环境迁移到另一台互联网速度非常慢的 PC。 因此,下载包有什么办法可以从工作机器中取出转储文件并放到新机器上。 我使用的操作系统是ubuntu 18.04

谢谢, 悟空

【问题讨论】:

标签: python pip conda offline ubuntu-18.04


【解决方案1】:

我承认,这不是一个完美的解决方案,但您可以尝试以下方法。

首先,您需要获取特定环境的环境文件。

conda activate your_env
conda env export > environment.yml

通常,您只需在新计算机上按以下方式使用它:

conda env create -f environment.yml

但是,您想在没有互联网的情况下执行此操作...您最好的选择可能是使用 Docker/Singularity 将您的构建容器化。

这是一个示例 Singularity 配方(在与“environment.yml”相同的目录中名为“Singularity”的文件中):

Bootstrap: docker

From: continuumio/miniconda3

%files
    environment.yml

%environment
    PATH=/opt/conda/envs/$(head -1 environment.yml | cut -d' ' -f2)/bin:$PATH

%post
    echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc
    echo "source activate $(head -1 environment.yml | cut -d' ' -f2)" > ~/.bashrc
    /opt/conda/bin/conda env create -f environment.yml

%runscript
    exec "$@"

构建这个:

sudo singularity build conda.simg Singularity

现在,您将拥有一个可以在任何地方运行的正常运行的容器!

只要您的机器上安装了 Singularity(如果您没有任何互联网访问权限,则可能会出现问题),您就可以运行此容器。

singularity run conda.simg conda -h

或者你想运行的任何东西(虽然 Jupyter 笔记本不适合我):

singularity run conda.simg ipython

【讨论】:

  • 感谢您的努力。到目前为止,我一直在广泛使用 docker 和 VM。但现在开始使用 tensorflow 和深度学习。为此我需要原生操作系统才能充分利用 GPU。
【解决方案2】:

您可以为跨两个系统的 pip 缓存设置网络,并且可以从 pip 缓存的网络安装,无需任何互联网连接,您可以在以下链接中找到它的步骤https://stackoverflow.com/a/11034515/7896543

【讨论】:

    猜你喜欢
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多