본문 바로가기

Skill Sets/Python

Python 내 가상환경 생성,구축 방법(Virtual Environments)

SMALL

안녕하세요! 데코입니다!!

이전 포스팅에서 가상환경이 왜 필요한지! 가상환경의 필요성에 대한 간단한 글을 적었다면!

오늘 포스팅에서는 가상환경을 생성하고, 가상환경 접속, 패키지 설치, 패키지 목록 파일 저장 등
가상환경을 구축하는 방법가상환경 관련하여 자주 사용하는 코드에 대하여 적어보려고 해요!

설명할 목록은 아래와 같아요!
혹시나 바쁘신 분들은 필요하신 부분으로 가셔서 필요한 정보 빠르게 획득하시길 바라요!

  • 가상환경 생성
  • 가상환경 리스트 확인
  • 가상환경 활성화 및 비활성화
  • 패키지 목록 파일 생성(requirement.txt 생성)
  • 패키지 목록 파일을 이용하여 패키지 설치(requirement.txt 이용)
  • jupyter notebook 가상환경 커널 추가(kernel 추가) (다음 포스팅 글)

바로 포스팅 시작할게요! :)


1. 가상환경 생성

가상환경을 생성하는 코드는 아나콘다를 이용하면 단 한 줄로 가능해요!
아나콘다를 이용하기 때문에 모든 작업은 Anaconda Prompt(anaconda3)에서 진행됩니다!

1-1. Anaconda Prompt(anaconda3)을 실행
아나콘다 폴더 하위에 있는 Andaconda Prompt(명령창)을 실행해주세요!

Andaconda  Prompt(명령창)

1-2. 가상환경 생성 코드 입력 후 코드 실행
코드를 실행 후 'y'를 입력하면 필수 패키지들까지 포함하여 설치하고 가상환경이 생성이 됩니다!

# 가상환경 생성 코드
conda create -n {가상환경 이름} python={파이썬 버전}

# 예시
conda create -n project_A python=3.8

코드(명령어 해석)

  • project_A : 생성하는 가상환경의 이름을 의미해요! 가상환경 이름은 원하는 이름으로 마음대로 생성하면 됩니다!
  • python=3.8 : 파이썬 3.8 버전(환경)으로 생성하라는 의미해요! 패키지와 요구하는 환경에 맞게 설정해주시면 됩니다!

예시 코드의 의미는
"project_A"라는 가상환경을 만들건대 파이썬 버전은 3.8 버전으로 만들어줘! 입니다!

 

2. 가상환경 리스트 확인

가상환경에 이름을 부여해도 매번 헷갈리더라고요!
고민하지 않고 생성한 가상환경 리스트를 확인하면 됩니다!

project_A...? project_a...? PROJECT_A...? 가상환경 이름 고민하지 말고 간단히 확인하세요..!

2-1. Anaconda Prompt(anaconda3)을 실행

2-2. 가상환경 리스트 확인 코드 입력 후 코드 실행

# 가상환경 리스트 확인
conda env list

모든 가상환경 목록 조회

코드(명령어 해석)

코드 블럭에 있는 코드의 의미는
"모든 가상환경 목록 나타내줘! 입니다!

3. 가상환경 활성화 및 비활성화

가상환경을 생성했으면 활성화해서 이용을 해야겠죠?
가상환경 목록에서 필요한 가상환경을 확인하고 원하는 가상환경을 activate 명령어를 이용하여 활성화해줍니다!

3-1. Anaconda Prompt(anaconda3)을 실행

3-2. 원하는 가상환경 활성화 코드 입력

3-2. 이용이 끝난 가상환경 비활성화 코드 입력

# 가상환경 활성화 코드
conda activate {가상환경 이름} 

# 가상환경 비활성화 코드
conda deactivate {가상환경 이름} 

# 예시(project_A 활성화)
conda activate project_A

# 예시(project_A 비활성화)
conda deactivate project_A

코드(명령어 해석)

  • activate : 활성화하다
  • deactvate : 비활성화하다

예시에 있는 코드의 의미는 각각
"project_A 가상환경 활성화 해줘!"
"project_A 가상환경 비활성화 해줘!" 입니다!

 

4. 패키지 목록 파일 생성(requirement.txt 생성)

가상환경의 필요성으로 '진행하는 프로젝트에서 필요로 하는 버전과 패키지만을 설치하여 구성' 이라고
저번 포스팅에서 말했어요!

requirments.txt 파일을 생성하는 방법과 requirments.txt을 이용해서 패키지를 설치하는 방법을 바로 설명해볼게요!

4-1. Anaconda Prompt(anaconda3)을 실행

4-2. 패키지 정보를 저장할 가상환경을 활성화
가상환경을 활성화하면 아래에 '활성화한 가상환경'과 '경로'가 나타납니다!

가상환경 'project_A'를 활성화 한 모습

제가 활성화 한 가상환경과 경로(위치)는 각각 “project_A” , “C:\Users\LG”이에요!

파일을 생성할 위치로 이동을 해주고 requirments.txt 파일을 생성하려고 합니다!

4-3. 파일을 생성할 폴더로 이동(디렉토리 변경)
윈도우 기반으로 작성을 하고 있기 때문에, [ dir 명령어 ]를 통해 폴더를 확인합니다!
원하는 폴더를 확인하면 [ cd 명령어 ]를 통해 폴더(디렉토리)를 변경해줍니다!

저는 생성한 파일을 쉽게 확인할 수 있게 “Downloads” 폴더로 변경할게요!

4-4. requirments.txt 파일을 생성하는 코드 입력
파일 생성을 할 위치로 이동한 다음, ' pip freeze > {원하는 파일명}.txt '를 이용하여 코드를 입력하면 됩니다!

# 'project_A' 가상환경을 활성화 한 모습
(project_A) C:\Users\LG

# 'Downloads' 폴더(디렉토리)로 변경
# cd는 change directory의 약어로 폴더(디렉토리)의 위치를 바꾸는 명령어에요!
(project_A) C:\Users\LG > cd Downloads

# 'project_A' 가상환경이 가지고 있는 패키지 목록을 requirement.txt 파일로 생성
# 파일 이름도 원하는 이름으로 변경이 가능합니다!
pip freeze > requirements_A.txt

코드(명령어 해석)
예시에 있는 코드의 의미는

"project_A 가상환경의 패키지 정보를 requirements_A.txt 파일로 생성해줘!"입니다!


“Downloads” 폴더로 이동해서 확인해보면 생성한 txt 파일이 존재하는 것이 보입니다!

Downloads 폴더에 생성된 requirements_A.txt 파일

 

5. 패키지 목록 파일을 이용하여 패키지 설치(requirement.txt 이용)

5-1. 패키지를 설치할 가상환경을 활성화
패키지 정보를 담은 파일은 requirements_A.txt 파일을 이용하여 패키지를 설치할 가상환경을 활성화합니다!
저는 'project_B'라는 가상환경에 설치하는 것을 가정해볼게요!

5-2. requirments.txt 파일이 존재하는 경로로 이동
주로 작업하는 공간으로 requirments.txt 파일을 옮겨서 이용합니다!
저는 “Downloads” 폴더에 있는 requirments_A.txt 파일을 이용하여 패키지를 설치해볼게요!

5-3. requirments.txt 파일을 이용하여 패키지를 설치하는 코드 입력

# 패키지를 설치할 'project_B' 가상환경을 활성화
(base) C:\Users\LG > conda activate project_B

# 활성화가 완료된 모습
(project_B) C:\Users\LG

# 'Downloads' 폴더(디렉토리)로 이동
# requirements_A.txt파일있는 폴더로 이동합니다!
(project_B) C:\Users\LG > cd Downloads

# requirement_A.txt 파일에 있는 패키지 정보를 그대로 설치
(project_B) C:\Users\LG > pip install -r requirements_A.txt

코드(명령어 해석)
예시에 있는 코드의 의미는

"project_B 가상환경의 패키지는 requirements_A.txt 파일에 있는 패키지로 설치해줘!"입니다!

 

requirements.txt 생성(좌) 및 패키지 설치(우) 요약

requirments.txt 파일을 생성하고 이용할 때에는 파일의 생성 위치를 잘 파악하는 게 핵심입니다!


"데코"가 현업에서 이용하는 가상환경

대학생 시절에 파이썬을 공부하고, 데이터 분석을 처음 접하면, 보통 자신이 이용하는 컴퓨터(Local)에서만 작업을 하니까
가상환경을 만들 필요가 없어서 저도 뒤늦게 가상환경에 대하여 구글링을 통해 공부했던 기억이 나네요!

가상환경 명령어는 엄청 많은데! 모든 걸 다 사용하진 않고 일부만 사용해요!
설명한 것과 마찬가지로 가상환경 생성하고 패키지 설치하고 requirement.txt 생성해서 배포하고, python 코드 작성하는 등
앞서 설명한 내용들과 같은 수준에서 작업을 하고 있어요!

제가 생각하기에 필수적인 건

  • 가상환경을 생성 및 접속
  • requirement.txt 생성
  • requirement.txt를 이용한 패키지 설치

이 3가지라고 생각해요!

위 3가지만 하실 수 있다면, 프로젝트를 하면서 상대방과 환경과 동일하게 구현하는 것도 가능하고
새로운 프로젝트를 시작할 때 가상환경을 구축하는 것도 가능하니까요!

물론 기존 작업하는 환경에서 해도 되지만!
기존 환경에서 패키지 버전 맞추려고 하다 보면 버전 충돌도 발생하게 되어서 더 번거로워지더라고요!
가상환경을 새로 만들어서 작업하는 게 더 마음 편해요...!

가상환경 생성하고 관련 명령어에 대하여 이해가 가셨나요?

생각보다 글이 길어져서 jupyter notebook에서 커널(kernel)을 만드는 방법은 따로 분리해서 적어야겠네요...!
다음 포스팅은 커널에 대한 간략한 소개와 만드는 방법을 소개해드릴게요!

잘 이해가 안 가는 부분은 언제든지 댓글로 남겨주세요!
빠르게 궁금증을 해결해드릴게요!

공감과 댓글은 저에게 큰 힘이 된답니다!
감사합니다 :)

LIST