가상환경을 써야하는 이유
프로젝트를 진행하다 보면 여러 모듈을 설치하게됨, 그리고 이 모듈들이 서로 dependency가 많아서, 글로벌하게 모듈 설치하면 관리가 어려워짐
그래서 각각의 필요한 모듈을 별도의 로컬 환경에 설치하여 사용하게됨 -> 모듈의 가상화
python 을 이용하다보면 프로젝트마다 다른 패키지와 패키지의 버전을 이용하게 된다.
이럴 때 pip install 무지성으로 때리면 패키지 깔고, 패키지 버전 바꿔서 사용할 수 있는데 왜 가상환경을 쓸까?
가상환경 없이 패키지를 설치하게되면 패키지들끼리 충돌이 일어나는 경우가 있는데(버전 문제 등 여러가지 이유로...) 매번 패키지 충돌 이슈를 겪게 되면 개발환경 세팅하는데 시간이 많이 걸리게 된다.
그렇기 때문에 불필요한 이슈를 피하기 위해서 가상환경을 사용하는 것이다!
각 프로젝트마다 따로 가상환경을 세팅하기 때문에 패키지가 전역에 깔리지 않는다
Virtualenv란?
Virtualenv는 글로벌 Python영역과 별개로 독립된 가상환경을 제공한다. 사용자는 이를 사용하여 프로젝트 별 Python의 버전, 사용되는 라이브러리의 버전을 특정할 수 있다. 물론 같은 프로젝트에서도 여러 가상환경을 만들어 버전관리할 수 있다.
Virtualenv VS venv
Python3.3버전 부터 Virtualenv의 일부 기능을 venv이란 모듈로서 스탠다드 라이브러리로 제공한다.
몇가지 차이점이 있는데 중요한 부분만 살펴보자면, venv는 다음의 단점을 갖는다.
- pip를 통해 업그레이드를 할 수 없다.
- 더 느리다. ( 정확히 어떤 작용에서 느린건지는 모르겠다. )
- 가상환경과 관련된 프로그래밍 API제공이 적다.
- .gitignore 설정이 제공되지 않는다. ( venv로 가상환경 설정 시 gitignore를 추가해줘야 하는 번거러움이 있다. )
2. 사용법
이동된 경로에 폴더로 생성되기때문에 가상환경을 사용할 폴더로 이동한뒤 사용 하면됨
// 파일 이동
cd 가상환경을 설치할 경로
2.1. 가상환경 생성
python -m venv 가상환경이름
2.2. 가상환경 활성화 (활성화를 해야 가상환경이 켜짐)
source 가상환경이름/Scripts/activate
2.3. 가상환경 비활성화 (가상환경 끄기)
deactivate
2.4. 설치된 패키지 리스트 txt 파일로 변환
git hub 에 가상환경 폴더를 ignore 하고 푸시하고 싶을 때 패키지 리스트를 txt 파일로 변환할 수 있다
pip freeze > requirements.txt

requirements.txt
2.5. 변환된 txt 파일로 패키지 설치하기
pip install -r 파일이름.txt
이거 옛날에 View 다닐때 쓰던거, 즉 requirement.txt 파일 써서 패키지 설치 -- 그에 맞는 버전의 모듈들 사용한다는 뜻임.그냥 모듈 무슨 버전 쓸지 모아 놓은 자료라고 생각하면되고, 그거로 swap & package change 쉽게하는 기능
'Infra As Code' 카테고리의 다른 글
Git, Version management tool (0) | 2025.04.02 |
---|