将conda环境迁移到没有Internet(或快速Internet)的机器上

时间:2019-02-13 18:29:35

标签: python pip conda offline ubuntu-18.04

我正在使用conda和python,并在环境中安装了很多依赖项。 我需要将环境迁移到互联网速度很慢的另一台PC上。 因此,宁可下载软件包也不用任何方法将转储文件从工作计算机上转移到新计算机上。 我使用的操作系统是ubuntu 18.04

谢谢, Gokul

2 个答案:

答案 0 :(得分:1)

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

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

conda activate your_env
conda env export > environment.yml

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

conda env create -f environment.yml

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

以下是示例奇点配方(与“ environment.yml”位于同一目录中的名为“奇点”的文件):

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 run conda.simg conda -h

或者您想要运行的任何产品(尽管Jupyter笔记本对我不起作用)

singularity run conda.simg ipython

答案 1 :(得分:0)

您可以为两个系统上的点子缓存设置网络,并且可以从点子缓存网络进行安装,而无需互联网连接,您可以在以下链接https://stackoverflow.com/a/11034515/7896543

中找到相应的步骤