파이썬(Python) 가상환경을 사용하는 이유와 가상환경 만들기
파이썬 가상환경이란?
파이썬 가상환경은 특정 프로젝트를 위해
독립된 파이썬 실행환경을 만드는 방법입니다.
각각의 가상환경은
자신만의 파이썬 인터프리터와
설치된 패키지(라이브러리)를 가집니다.
비유하자면
여러 개의 서럽을 갖고 있는 서랍과 같습니다.
각 서랍(가상환경)에는 특정 프로젝트에 필요한 도구(패키지)들만 넣어두고
다른 서랍의 도구와 섞이지 않게 합니다.
각 프로젝트마다 깨끗하고 격리된 작업공간을 제공한다고 볼 수 있습니다.
윈도우를 기준으로 설명하도록 하겠습니다.
파이썬 가상환경을 사용해야 하는 이유
1) 의존성 충돌 방지
프로젝트 A는 버전 1.0인 라이브러리가 필요하고
프로젝트 B는 버전 2.0인 라이브러라기 필요할 수 있습니다.
가상환경 없이 시스템 전체에 패키지를 설치하면
두 버전 중 하나만 설치되므로
다른 프로젝트는 오류가 발생합니다.
2) 프로젝트 별 패키지 관리
각 프로젝트에 필요한 패키지만 정확히 설치하고 관리할 수 있습니다.
프로젝트가 끝나거나 더 이상 필요가 없을 때
가상환경 폴더만 삭제하면 깨끗이 정리할 수 있습니다.
시스템 전체에 설치된 패키지에는 영향을 주지 않습니다.
3) 제현성 및 협업 용이성
requirements.txt 파일을 사용해
특정 프로젝트에서 사용된 패키지 목록과 버전을
정확히 기록하고 공유할 수있습니다.
(이 부분은 아래에서 다루겠습니다.)
4) 깨끗한 전역환경 유지
시스템의 기본 파이썬 환경을
불필요한 패키지들로 어지럽히지 않고 깨끗이 관리할 수 있습니다.
파이썬 가상환경 만들기 및 사용방법
1) 가상환경 만들기
python -m venv <가상환경_이름>
<가상환경_이름>은 가상환경 폴더 이름입니다.
이 명령을 실행하면 현재 폴더 아래에
지정한 이름의 폴더가 생성되고
그 안에 독립적인 파이썬환경에 필요한 파일들이 복사됩니다.
현재는 파이썬 기본 폴더에
파이썬 파일 하나만 있습니다.
위 명령을 사용해 test라는 가상환경을 만들어 보겠습니다.
아래 그림과 같이 test라는 가상환경 폴더가 하나 생성이 됩니다.
2) 가상환경 활성화 하기
가성환경을 활성화하는 방법은 다음과 같습니다.
.\<가상환경_이름>\Scripts\activate
현재 test라는 가상환경을 만들었으므로
아래의 명령을 통해
가상환경을 활성화할 수 있습니다.
.\test\Scripts\activate
아래 그림의 빨간색 네모와 같이
가상환경 이름이 맨 앞에 나타난다면
가상환경이 활성화된 것입니다.
3) 가상환경에 패키지 설치하기
가상환경에 패키지를 설치하려면
아래 명령을 사용하면 됩니다.
pip install <패키지_이름>
예시:
pip install numpy pandas matplotlib
설치된 패키지는 현재 활성화 된 가상환경 내부에만 설치됩니다.
확인하기 위해
temp라는 가상환경을 만들겠습니다.
그러면 test라는 가상환경과 temp라는 가상환경 두 개가 됩니다.
이 상태에서 test 가상환경에
customtkinter 라이브러리를 설치해 보겠습니다.
아래 그림처럼 test / temp 두 개의 가상환경을 만들었습니다.
그다음 test 가상환경을 활성화하고
test 가상환경에 customtkinter 라이브러리를 설치했습니다.
이제 각각의 가상환경에서
pip list
명령을 사용해 설치된 라이브러리가 어떻게 다른 지 확인해 보겠습니다.
4) 의존성 목록 저장 및 재설치
현재 환경에 설치된 패키지들의 목록과 정확한 버전을 파일로 저장합니다.
이 파일은 다른 사람과 협업하거나
다른 환경에서 동일한 환경을 구축할 때 사용합니다.
관례적으로 requirements.txt 라는 파일 이름을 사용합니다.
아래 명령을 사용하여 requirements.txt 파일을 만들어줍니다.
저는 test 가상환경에서 아래 명령을 실행했습니다.
pip freeze > requirements.txt
아래와 같이 requirements.txt 파일이 만들어지고
그 내용은 아래 그림과 같습니다.
왼쪽 그림은 test 가상환경에서 만든 requirements.txt 파일이고
오른쪽 그림은 test 가상환경에서 pip list 명령을 사용해 설치된 라이브러리 목록을 출력한 그림입니다.
다른 환경에서 requirements.txt 파일을 이용하여
동일한 패키지를 한 번에 설치할 수 있습니다.
pip install -r requirements.txt
가상환경 비활성화
가상환경 사용을 마치려면 다음 명령을 입력합니다.
deactivate
가상환경이 활성화된 상태에서
위 명령을 실행하면
가상환경 이름 표시가 사라지고
원래의 시스템 환경으로 돌아갑니다.
마치며
파이썬 프로젝트를 시작할 때는
가상환경을 만드는 습관을 들이는 것이 좋습니다.
가상환경은 프로젝트 간의 의존성 충돌을 막고
깨끗한 개발환경을 만드는 데 필수적입니다.
[ 파이썬 관련 블로그 글 목록 ]
파이썬(Python) 블로그 목록