Conda环境导出与导入的实现

博主在进行实验过程中由于需要频繁更换服务器,而每次更换服务器后便少不了进行环境配置,尽管有requirement.txt的帮助,配置环境时也是需要费一番功夫。因此想到conda的环境导出与导入功能。

具体过程如下:

环境导出

# -n 后面的参数是服务器A要克隆的环境名称,> 后跟着我们要保存的路径文件名称
conda env export -n yolos > /data/yolos.yaml

如下:

ubuntu@VM-0-17-ubuntu:/$ conda env export -n yolos > /data/yolos.yaml

当然我么也可以先切换到我们想要导出的conda环境中再进行导出。

ubuntu@VM-0-17-ubuntu:/$ source activate yolos
(yolos) ubuntu@VM-0-17-ubuntu:/$ conda env export >/data/dino.yaml

Conda环境导出与导入的实现_第1张图片

导出的文件如下:

name: yolos
channels:
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - blas=1.0=mkl
  - ca-certificates=2023.01.10=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - cudatoolkit=10.1.243=h6bb024c_0
  - freetype=2.12.1=h4a9f257_0
  - giflib=5.2.1=h5eee18b_3
  - intel-openmp=2021.4.0=h06a4308_3561
  - jpeg=9e=h7f8727e_0
  - lcms2=2.12=h3be6417_0
  - ld_impl_linux-64=2.38=h1181459_1
  - lerc=3.0=h295c915_0
  - libdeflate=1.17=h5eee18b_0
  - libffi=3.4.2=h6a678d5_6
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libpng=1.6.37=hbc83047_0
  - libstdcxx-ng=11.2.0=h1234567_1
  - libtiff=4.5.0=h6a678d5_2
  - libwebp=1.2.4=h11a3e52_1
  - libwebp-base=1.2.4=h5eee18b_1
  - lz4-c=1.9.4=h6a678d5_0
  - mkl=2021.4.0=h06a4308_640
  - mkl-service=2.4.0=py37h7f8727e_0
  - mkl_fft=1.3.1=py37hd3c417c_0
  - mkl_random=1.2.2=py37h51133e4_0
  - ncurses=6.4=h6a678d5_0
  - ninja=1.10.2=h06a4308_5
  - ninja-base=1.10.2=hd09550d_5
  - numpy-base=1.21.5=py37ha15fc14_3
  - openssl=1.1.1t=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - six=1.16.0=pyhd3eb1b0_1
  - sqlite=3.40.1=h5082296_0
  - tk=8.6.12=h1ccaba5_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.2.10=h5eee18b_1
  - zlib=1.2.13=h5eee18b_0
  - zstd=1.5.2=ha4553b6_0
  - pip:
      - addict==2.4.0
      - charset-normalizer==3.1.0
      - cloudpickle==2.2.1
      - coloredlogs==15.0.1
      - cycler==0.11.0
      - cython==0.29.33
      - filelock==3.9.0
      - flatbuffers==23.3.3
      - fonttools==4.38.0
      - huggingface-hub==0.13.2
      - humanfriendly==10.0
      - idna==3.4
      - importlib-metadata==6.0.0
      - kiwisolver==1.4.4
      - matplotlib==3.5.3
      - mpmath==1.2.1
      - multiscaledeformableattention==1.0
      - numpy==1.21.6
      - nvidia-cublas-cu11==11.10.3.66
      - nvidia-cuda-nvrtc-cu11==11.7.99
      - nvidia-cuda-runtime-cu11==11.7.99
      - nvidia-cudnn-cu11==8.5.0.96
      - onnx==1.13.1
      - onnxruntime==1.14.1
      - opencv-python==4.7.0.72
      - packaging==23.0
      - pandas==1.3.5
      - pillow==9.4.0
      - protobuf==3.20.3
      - pycocotools==2.0.6
      - pyparsing==3.0.9
      - python-dateutil==2.8.2
      - pytz==2022.7.1
      - pyyaml==6.0
      - requests==2.28.2
      - scipy==1.7.3
      - seaborn==0.12.2
      - submitit==1.4.5
      - sympy==1.10.1
      - termcolor==2.2.0
      - timm==0.6.12
      - torch==1.13.1
      - torchvision==0.14.1
      - tqdm==4.65.0
      - typing-extensions==4.5.0
      - urllib3==1.26.14
      - yapf==0.32.0
      - zipp==3.15.0
prefix: /home/ubuntu/.conda/envs/yolos

随后我么只需要将该文件上传到另一个服务器上后执行导入环境命令即可。

文件互传

先前博主互传两文件是都需要先从一个服务器上下载到本地,随后再上传到另一个服务器上,那么可不可以直接两个服务器之间互传呢?肯定是可以的。

两个服务器间互传文件首先可以使用wget命令:如下
循环往复一直报如下错误:百度了下也没有找到解决方法。

ubuntu@VM-0-5-ubuntu:~/data$ wget ftp://42.194.134.136:22//data/yolos.yaml
--2023-03-18 10:38:40--  ftp://42.194.134.136:22//data/yolos.yaml
           => ‘yolos.yaml'
Connecting to 42.194.134.136:22... connected.
Error in server response. Closing.
Retrying.

wget命令失败

rsync命令

将目标服务器文件下载到本服务器。

rsync [email protected]:/data/yolos.yaml /home/ubuntu/data/

OK成功,需要注意的是需要输入目标服务器的密码

将本服务器文件上传到目标服务器

rsync /data/yolos.tyaml [email protected]:/home/ubuntu/data

文件上传成功后我们便可导入conda环境了。

conda env create -f data/yolos.yaml

需要给.conda文件写入权限:

 

sudo chmod a+w .conda

 

再次执行:报错了,这个是由于该环境中需要配置CUDA算子导致的。

看来对于这个conda环境没有什么捷径可走,但对一些不需要配置CUDA算子的cuda环境,如另一个yolov7的cuda环境,就可以正常运行。
但该方法如果使用默认的下载源的话所需时间可能较长。

到此这篇关于Conda环境导出与导入的实现的文章就介绍到这了,更多相关Conda环境导出导入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家

你可能感兴趣的:(Conda环境导出与导入的实现)