python3을 이용하여 한 가지 프로젝트만 진행한다면 전역에 패키지를 설치해도 무방하지만 프로젝트별로 사용하는 패키지 버전이나 종류가 달라지는 경우가 흔합니다.
각 프로젝트 별 가상환경을 생성하여 프로젝트별 불필요한 패키지가 설치 되지 않도록 합니다.
가상 환경을 생성하는 base python은 프로젝트별로 버전이 같아야 하므로 명시해주는 것이 좋습니다.
python3 -m venv <가상환경 이름>
저는 맥OS를 사용중이라 python2, python3가 기본적으로 모두 설치되어 있어서 python3로 입력하였습니다.
생성되는 가상환경은 운영체제 별로 달라서 window에서 생성한 가상환경이 mac에서 호환되지 않는 경우도 있습니다.
*Mac
source ./<가상환경 이름>/bin/activate
*Window
./<가상환경 이름>/Scripts/activate.bat
가상환경이 실행되면 프롬프트 앞쪽에 (가상환경 이름)이 붙게됩니다.
pip install django
pip list
git이나 svn에서 코드를 관리할 때 바이너리 모듈을 저장하지 않고 spring에선 pom.xml, JS -> package.json처럼 해당 프로젝트에 필요한 라이브러리들에 대한 정보만 관리합니다.
python은 보편적으로 pip freeze명령을 통해 출력된 목록을 사용합니다.
pip freeze > requirements.txt
저장된 requirements.txt 파일을 통해 다시 패키지를 설치할 수 있습니다.
pip uninstall django
pip install -r requirements.txt
-r 옵션은 requirements 파일을 활용하여 패키지를 다운로드 하는 옵션입니다.