2023년 6월 업데이트
안녕하세요. SQLER의 코난 김대우입니다.
이번 강좌에서는, Python 머신러닝 강좌 - 2. Anaconda와 Conda 구성을 진행토록 하겠습니다.
SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록
코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 실행하시면 됩니다.
예를 들어, 2_conda.ipynb를 생성하고 vscode에서 실행하면, Jupyter notebook이 실행됩니다.(vscode에서 실행도 가능하며, 웹브라우저에서도 실행 가능합니다.)
상세한 환경 구성이 필요하시다면, 개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 문서를 참조해 WSL, vscode, conda, jupyter notebook 설정을 모두 먼저 완료하시길 권장해 드립니다.
TL;DR
Anaconda는 머신러닝과 데이터 과학을 위한 Python과 R의 배포판으로, 1500개 이상의 패키지와 그래픽/명령 줄 인터페이스를 제공합니다. Conda는 오픈 소스 패키지 관리 및 환경 관리 시스템으로, Python 개발 환경을 관리하고 외부 라이브러리를 설치하는 데 사용됩니다. 주요 conda 명령어로는 환경 생성, 환경 리스트, 활성화, 삭제가 있습니다.
Python 머신러닝 강좌 - 2. Anaconda와 Conda 구성
이미 지난 SQLER의 강좌들을 따라오셨다면, 충분히 Conda에 대해서는 이해하고 계실 거에요.
개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 문서와 개발자 커뮤니티 SQLER.com - Python 머신러닝 강좌 - 1. 주피터 노트북(Jupyter Notebook) 구성 문서에서 소개해 드린 것처럼, Python에서 독립된 개발 환경을 생성할 수 있습니다.
몇 번 SQLER의 관련 강좌 자료를 보셨다면, 계속 Conda와 Anaconda가 함께 등장하고, 좀 더 상세한 Conda 사용방법 등이 궁금하실 거에요. 이번 강좌에서 그런 궁금하신 부분을 풀어 보도록 하겠습니다.
Anaconda란 무엇인가?
Anaconda는 머신러닝과 Data Science를 위한 Python과 R의 오픈 소스 배포판입니다. 이 배포판에는 1500 개 이상의 패키지, Anaconda Navigator라는 그래픽 인터페이스, Anaconda prompt
라는 명령 줄 인터페이스 및 Conda
도구가 포함됩니다.
네, Conda가 포함된 여러 패키지의 집합이라고 보시면 됩니다. 그런데 왜 SQLER에서는 안 다루냐고요?
음... Python은 필요할 때 패키지를 설치할 수 있도록 하는 패키지 관리자(pip/conda등)가 기본 제공됩니다.
클라우드 시대에, 굳이, 불필요한 수많은 패키지를(계속 업데이트되는) 가지고 있을 필요가 없으며, 필요시 설치하거나 업데이트하면 되기 때문입니다. 아울러, 개발자의 입장에서 자신의 코드에서 필요한 패키지만 필요할 때 설치/사용할 수 있어서 좀 더 솔루션을 꼭 필요한 패키지들만 유지할 수 있는 것도 장점이에요. 저는 강좌에서 진행한 대로, conda만 구성해 사용할 것을 권장해 드립니다.
Conda는 무엇인가?
Python 코드는 종종 패키지에 저장된 외부 라이브러리에 의존적입니다. Conda는 오픈 소스 패키지 관리 시스템 및 환경 관리 시스템으로, Python 개발 환경을 관리하고 Jupyter 노트북 용 패키지를 설치하는 데에도 많은 도움이 됩니다.
Conda와 pip의 차이점
Conda 공식 사이트에서 표현하는 pip와 같은 package manager와의 차이점은,
The main problem is that they are focused around Python, neglecting non-Python library dependencies, such as HDF5, MKL, LLVM, etc., which do not have a setup.py in their source code and also do not install files into Python’s site-packages directory.
Python Packages and Environments with conda | Continuum (archive.org)
기존의 pip와 같은 패키지 관리자는 이렇게 python dependency만 관리 가능하지만, conda는 이를 넘어 추가적으로 필요한 여러 non-Python 패키지들에 대한 관리도 함께 제공합니다. 몇몇 deep learning 패키지를 사용하다 보면, conda dependency만 제공하는 경우가 있는데, 이런 경우라고 보시면 됩니다.
중요한 건,
우리 개발자들이 Python으로 코드를 검토하거나 개발할 때 "ModuleNotFoundError: No module named in Python
" 오류를 만나면, 검색해 보시면 됩니다. pip로 대부분 설치 가능하고, 안 되는 것은 conda나 Ubuntu에서 apt 등을 이용해 해결 가능합니다. SQLER의 머신러닝 문의 게시판에도 문의하시면 잘 알려 드릴게요.
conda 명령들
여러 conda 명령들이 있지만, 아래 4~5개 정도가 전부입니다.
conda 환경(environment) 생성
conda 독립 환경을 생성하는 명령
# conda 환경 생성 - conda create # conda create -n Python환경이름 python=버전 conda create -n sqler_ml_lec python=3.11 # 이전 강좌에서 이미 sqler_ml_lec을 생성했다면 중복 생성 오류가 발생합니다.
conda 환경 리스트 - conda env list
# 계정에 생성된 conda 환경 목록 조회 conda env list
conda 환경 업그레이드
conda를 최신버전으로 셀프 업그레이드 할 때 사용
conda update conda
conda 환경 활성화 - conda activate
설치된 conda 환경을 activate 해서 독립된 python 개발 환경을 활성화
# conda activate conda환경이름 conda activate sqler_ml_lec
conda 환경 비활성화 - conda deactivate
conda deactivate
conda 환경 삭제
설치된 모든 Python 패키지를 삭제하고 환경도 삭제
# conda env remove -n conda환경이름 conda env remove -n sqler_ml_lec # 강좌에서 계속 사용되니 아직 삭제는 하지 마세요.
이렇게 처리됩니다.
이어지는 강좌는 모두 sqler_ml_lec conda 환경에서 실행되니 항상 activate 시키시고, 현재 개발 환경이 해당 conda 환경에서 실행 중인지 체크하세요.
conda 명령어 cheat sheet
더 상세한 conda 명령을 Conda cheat sheet - PDF문서 링크에서 보실 수 있습니다.
파이썬 강좌 책 구매
강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다.
책구매 링크: 챗GPT와 함께하는 파이썬 & 머신러닝 코딩 마스터
참고문서
- Conda 웹사이트
- Conda 환경 관리 환경 생성, activate 및 deactivate 명령 정보 제공
- Packages 관리 Conda 환경에 패키지를 생성하는 방법 설명
- Conda cheat sheet Conda 명령 퀵가이드