본 포스트의 내용은 여러 자료를 참고하여 만들어졌습니다.
단, 컨텐츠는 자체 제작하였으니 저작권 관련 사항은 메일로 문의해주세요.

가상환경이란?

가상환경이란, 동일 PC에서 언어나 패키지의 버전이 격리된 개발 환경 이라고 말할 수 있겠다.
하나의 로컬 PC에는 다수 개의 가상환경을 만들 수 있고,
이 가상환경들엔 각각 다른 버전의 언어 혹은 패키지를 설정할 수 있고,
가상환경들끼리는 버전이 섞이지 않는다.


가상환경의 필요성

  • 여러 프로젝트를 진행하는데, 각각의 프로젝트에서 요구하는 언어나 패키지의 버전이 다른 경우
  • 예를 들어 1번 프로젝트는 3.8 이상의 파이썬을 필요로 하고, 2번 프로젝트는 3.5 이하의 파이썬을 필요로 할 경우
  • 이 때에는 각각의 프로젝트에 맞춘 가상환경을 각각 만들어주는 게 필요하다.
  • 각 가상환경들은 언어와 패키지의 버전이 연동/혼용되지 않는다. (격리된 환경임)


가상환경 명령어

가상환경 만들기

명령어 설명
conda create -n 가상환경명 python==원하는버전 원하는 버전의 파이썬이 설치된 가상환경을 만든다.
conda activate 가상환경명 가상환경명에 해당하는 가상환경을 구동한다.
이후 해당 가상환경 하에서 터미널이 작동한다.
conda env list PC에 만들어져있는 가상환경들 리스트를 보여준다.
base는 기본 환경이다.
conda env remove -n 가상환경명 가상환경명에 해당하는 가상환경을 삭제한다.
conda rename -n 기존가상환경명 바꿀가상환경명 가상환경의 이름을 변경한다.

참고
remove로 가상환경을 삭제하면 폴더 내의 파일들만 삭제된다.
하지만 폴더는 남아있으므로, 해당 가상환경을 activate할 수는 있다.
폴더는 남아있어도 별 문제 없으니 신경쓰지 않아도 되지만,
신경쓰인다면 직접 해당 가상환경 경로로 들어가 디렉토리를 삭제하면 된다.


패키지 관련 명령어

명령어 설명
conda list 현재 가상환경에 설치되어있는 패키지들 리스트를 보여줌
conda install 패키지명 패키지 설치 (conda 방식)
conda remove 패키지명 패키지 제거 (conda 방식으로 설치된 패키지 대상)
conda uninstall 패키지명 패키지 제거 (conda 방식으로 설치된 패키지 대상)
pip install 패키지명 패키지 설치 (pip 방식)
pip uninstall 패키지명 패키지 제거 (pip 방식으로 설치된 패키지 대상)

참고 : PIP 와 Conda?
우선, conda list로 설치된 패키지를 출력해보면, conda로 설치되었는지 pip로 설치되었는지 알 수 있다.

패키지 버전 오른쪽에 pypi가 적혀있으면 pip로 설치된 것이며,
아무 것도 없는 경우 conda로 설치된 것이다.
pip와 conda 설치는 패키지를 다운로드 받는 원천 주소가 다르며, 이에 따라 설치되는 패키지 버전이 다를 수 있으므로 주의가 필요하다.
또한 pip 설치는 해당 패키지만 설치되는 데 반해, conda로 설치할 경우 해당 패키지에 필요한 dependence 패키지도 함께 설치하게 된다.


가상환경 추출과 불러오기

명령어 설명
conda env export > 파일명.yml 해당 가상환경에 설치된 프로그래밍 언어 및 패키지 리스트를
yml 파일로 추출한다.
conda env create -f 와이엠엘파일명.yml yml파일에 설정된 가상환경을 불러온다.


기타 참고

PIP와 Conda Install 의 차이점

  • 우선은, 패키지를 관리하는 곳이 다르다. 이에 패키지 버전이 다를 수 있다.
  • PIP는 install시 요구한 해당 패키지만 설치가 되지만
  • Conda는 install시 관련하여 필요한 패키지(dependences)들도 설치된다.