아나콘다(Anaconda) - 기본 설명
안녕하세요. 좋은사람 입니다.
이번 포스팅에서는 아나콘다 가상환경 패키지 상태 정보를 별도의 파일로 출력해서 저장 후 해당 파일
기반으로 환경을 재 구축 하는 실습을 해보겠습니다.
아나콘다 공식 레퍼런스를 확인해보면 몇 가지 다양한 방법이 있고 그 중에서 env 명령어를 사용해서
실습하겠습니다.
제 계획은 약 3부에 걸쳐서 작성할 예정이며, 경우에 따라서 분량은 늘어나거나 줄어 들 수 있음을 알려드려요.
지난 아나콘다 기초 학습 관련 포스팅은 오른쪽 링크를 참고하세요. - 관련 포스팅
아나콘다(Anaconda) - env 명령어 실습 및 설명
env 명령어는 기존 가상환경 패키지 의존관계 정보 출력 등 다양한 기능을 제공하고 있어요.
하단에 명령어를 꼭 직접 실습해 보시고 이해가 안되시면 실행화면 이미지를 참고하세요.
설정 서버 운영체제는 Windows10, CentOS7 입니다. 설치 권한도 꼭 확인하세요.
저는 기존에 설치한 가상환경 ml_study 기준으로 설명했습니다.
1. env, export, create, -h
기본적인 실습전에 env 명령어의 도움말을 출력해 봅니다. 기존에 언급드렸듯이 최근에 CLI 환경의 도움말도
공식 레페런스 만큼 자세하게 나와있어 바로 읽고 사용할 수 있습니다.
-h : env 명령어의 optional 정보를 확인에 볼 수 있어요.
-export : 현재 가상환경 상태의 패키지 설치 및 의존 정보를 별도의 파일로 저장
-create : 저장 된 파일 기반(yaml, json)으로 모든 패키지 설치 + 가상환경을 생성
1 2 3 4 5 6 7 8 | #conda env 도움말 출력 conda env -h #conda env export 도움말 출력 conda env export -h #conda env create 도움말 출력 conda env create -h | cs |
실행 화면1
2. env -export
정말 유용하고 자주 사용하는 옵션 입니다. 지난 포스팅에서 설명드렸듯이 회사에서 작업한 가상환경
패키지 전체를 다른 곳(집) 등에 옮겨 올때 각 의존관계에 있는 패키지 버전을 별도로 하나하나 설치해야
하는 불편함 없이 내가 저장한 파일로 매우 간단하게 가상환경 생성 및 관련 패키지를 한 번에 구성할 수
있습니다.
아래 실행화면을 꼭 살펴보시고 자주 사용해 보세요.
--export : 기존 가상환경(-n 가상환경이름) 패키지 정보를 지정한 경로에 파일(yml, yaml)로 저장
1 2 | #기존 가상환경 모든 정보를 파일이름.yaml 형식으로 저장 conda env export -n 가상환경이름 --file(-f) 파일이름.yaml(yml) | cs |
실행 화면2
3. env create
위의 2번 항목과 연결되는 옵션입니다. 2번에서 저장한 파일(yml, yaml)을 가지고 가상환경 구축 및 패키지
를 한번에 설치할 수 있는 옵션입니다.
즉, 가상환경 생성 + 패키지 설치
작업이 일괄적으로 처리됩니다.
아래 실행화면을 꼭 살펴보시고 임의의 가상환경을 구축해 보세요.
여기서 잠깐!
YAML 형식(Syntax)는 자주 사용되고 있으며, 자세한 내용은 여기를 참고하세요.
--file : 지정한 경로에 있는 패키지 정보 파일을 로드 후 create
명령어를 사용해서 가상환경을 생성합니다.
1 2 | #파일이름.yaml의 모든 패키지 정보를 기준으로 지정한 가상환경 conda env create -n ml_study2 --file ml_study.yaml(yml) | cs |
실행 화면3
4. 최종 확인
정확하게 Export : 저장, Create : 생성
명령어 실습 후 생성 된 가상환경을 삭제(remove) 후 기존 가상환경
리스트를 출력해 봤습니다.
꼭! 눈으로만 보지마시고 실습해보시기를 권장해 드립니다.
1 2 | #가상환경 삭제 후 기존 가상환경 리스트 conda env list 또는 conda info --envs(-e) | cs |
실행 화면4
아나콘다(Anaconda) 레퍼런스 확인 및 다운로드는 오른쪽 -> 클릭
마무리
이번 포스팅도 가상환경 생성에 관한 주제로 conda env
명령어를 통해서 실습해봤습니다. 가상환경의
중요성은 몇 번이고 강조해도 지나치지 않다고 생각합니다.
별도로 구성된 디렉토리를 통해서 서로 다른 프로젝트를 진행할 수 있고 파이썬 언어의 특성인 하나의
인터프리터에서 여러 버전의 패키지 및 라이브러리 설치가 불가능하기 때문에 각 패키지 업데이트 시에
의존성 문제가 발생되기 때문입니다.
아울러, 파이썬 뿐만 아니라 Java
의 Maven, Gradle
등 여러 의존성을 관리해주는 툴에 대해서도
꼭 학습해보시길 권장드립니다.
다음 포스팅에서도 또 찾아뵙겠습니다. 감사합니다.
'언어 > Python' 카테고리의 다른 글
파이썬(Python) - 템플릿 메소드(Template Method) 패턴(디자인패턴) (0) | 2019.03.06 |
---|---|
파이썬(Python) - 팩토리 메소드(Factory Method) 패턴(디자인패턴) (0) | 2019.02.25 |
파이썬 아나콘다(Anaconda) - 심화 사용법 정리(1) - list, search 명령어 (0) | 2019.01.23 |
파이썬(Python) - 데코레이터 (Decorator) 패턴 사용 예제 및 소스코드 (0) | 2018.12.10 |
파이썬(Python) - 람다(lambda)식 및 filter, reduce 사용 예제 및 소스코드 (0) | 2018.11.15 |