Conda 가상환경 추출 - conda gasanghwangyeong chuchul

Conda 가상환경 추출 - conda gasanghwangyeong chuchul
fig1. title

아나콘다 환경 추출하기

개발 환경에 따라 다른 OS에 conda 환경을 import 할 때 유용함


Summary

1. 콘다 환경 실행 / conda activate env

2_1. .yml 형식으로 저장 / conda env export > name_environment.yml

2_2. .txt 형식으로 저장 / conda list --explicit > test1.txt

3. yml 파일로 환경 생성


1. 콘다 환경 실행 / conda activate my_env

$ conda activate my_env

2_1. .yml 형식으로 저장 / conda env export > name_environment.yml

conda env export > name_enviroment.yml

default path(보통 home/user/)에 .yml 파일 생성 

Conda 가상환경 추출 - conda gasanghwangyeong chuchul
fig2. output of 2_1

2_2. conda list --explicit > test_env.txt

$ conda list --explicit test1.txt
Conda 가상환경 추출 - conda gasanghwangyeong chuchul
fig3. output of 2_2

default path(보통 home/user/)에 .txt 파일생성

3. yml  파일로 콘다 환경 생성

$ conda env create -f environment.yml

  • conda --version
    콘다 버전확인

  • conda create -n 가상환경 이름 python=3.6
    가상환경 만들기

  • conda env remove -n 가상환경 이름
    가상환경 지우기

  • conda env list
    가상환경 리스트 불러오기

  • activate 가상환경 이름
    가상환경 들어가기

  • conda deactivate
    가상환경 나오기

  • cls
    내용 모두 지우기

  • E: (드라이브는 그냥 쓰기)

  • cd anaconda (폴더 들어갈땐 cd 추가)

  • dir
    경로의 폴더들 모두 확인

  • 가상환경 파일 들어간 후 git clone 깃헙주소
    주소의 코드 다 가지고 오기


가상 환경 복사

  • conda create -n 환경이름 --clone 원본환경이름
    기존 환경을 복사해서 새로운 환경을 만듭니다.

가상 환경 추출

  • conda env export -n 환경이름 > 파일명.yml
    가상 환경을 추출해 환경 파일에 저장합니다.

  • conda env create -f 파일명.yml
    환경 파일을 이용해 가상 환경을 생성합니다.

conda 패키지 목록 추출
pip 패키지 제외 목록

  • conda list 환경이름 --explicit > 파일명.txt
    가상 환경의 패키지 목록을 추출해 txt파일에 저장합니다.

  • conda create -n 환경이름 --file 파일명.txt
    추출한 패키지를 모두 포함하는 가상 환경을 생성합니다.

  • conda install --file 파일명.txt
    가상 환경에 추출한 패키지를 모두 설치합니다.

pip 패키지 목록 추출

  • pip freeze > 파일명.txt pip의 패키지 목록을 추출합니다.

  • pip install -r 파일명.txt 가상 환경에서 추출한 pip 패키지를 모두 설치합니다.

Anaconda는 여러 Python 가상 환경을 구성해서 사용하고 만들 수 있는 것이 큰 장점이다.

Linux <-> Windows 간 호환은 잘 안되지만, 같은 OS라면 공유하는 것이 크게 어렵지 않다.


1. Export(가상환경 파일 만들기)

현재 사용하고 있는 가상환경을 activate한 상태 기준으로, 아래 명령어로 yaml파일을 만들어준다.

conda env export > [$ENVIRONMENT_NAME].yaml

ex) conda env export > test_env.yaml
Conda 가상환경 추출 - conda gasanghwangyeong chuchul

생성된 yaml 파일은 다음과 같이 가상환경 이름과 채널, 필요한 디펜던시(라이브러리) 목록이 나열되어 있다.

Conda 가상환경 추출 - conda gasanghwangyeong chuchul

2. Import(가상환경 생성)

이제 앞에서 만든 yaml을 통해 새로운 환경으로 파일을 가져오자.

CUDA, CUDNN 등 부가적인 시스템 라이브러리나 그래픽 드라이버만 어느 정도 맞다면 문제 없이 생성할 수 있다.

# 가상환경 생성
conda env create -f [$FILE_NAME]
ex) conda env create -f test_env.yaml

# 가상환경 활성화
conda activate [$ENVIRONMENT_NAME]
ex) conda activate test_env
Conda 가상환경 추출 - conda gasanghwangyeong chuchul

+) 중간중간 PIP 라이브러리 상 다음과 같이 버전이 맞지않는 경우가 존재한다.

Pip subprocess error:
ERROR: Could not find a version that satisfies the requirement [라이브러리 이름]
ERROR: No matching distribution found for [라이브러리 이름]

failed

CondaEnvException: Pip failed

이건 실제로 pip로 라이브러리를 설치하는 과정에서 해당 버전을 찾을 수 없다는 내용으로 yaml파일에서 해당 라인을 삭제하거나 다른 버전으로 교체해주고 가상환경을 재-생성해주면 문제 없이 만들 수 있다. 

Conda 가상환경 추출 - conda gasanghwangyeong chuchul
CondaValueError: prefix already exists: /opt/conda/envs/ppp

요 에러는 이미 가상환경 이름이 똑같은게 있는데 다시 생성하려고 할 때 뜨는 문구 이므로, 저 경로로 이동해서 해당 환경을 삭제하고 다시 환경을 생성하면 문제없이 해결된다.

Conda 가상환경 추출 - conda gasanghwangyeong chuchul