가상 환경이 필요한 이유는 특정 프로젝트를 위해 패키지를 설치할 공간이 필요하기 때문이다. 예를 들어 어느 한 프로젝트에서 파이썬 2.7 버전을 사용하고 다른 프로젝트에서는 3.x 버전을 사용한다면 문제가 발생한다. 또한 장고 같은 프레임워크는 파이썬 버전마다 다른 버전을 사용하기 때문에 가상 환경을 설정해서 각 프로젝트에 맞게 세팅해야 한다.
이 모듈을 사용하기 위해서는 파이썬 버전 3.3 이상이 필요하고, 이 모듈은 파이썬에 내장되어 있기 때문에 따로 설치할 필요는 없다.
pip3 list
명령어를 터미널에서 입력하게 되면 현재 설치되어 있는 패키지가 표시된다.
이 패키지들은 가상환경이 아니라 현재 맥북에 설치된 패키지들이다.
python3 -m venv [원하는 이름]
을 입력하면 새로운 가상환경이 만들어진다.
test_env
폴더가 생성되었다.
source test_env/bin/activate
를 입력해서 생성한 가상환경을 활성화했다.
터미널 상 경로 앞에 (test_env)
를 보면 활성화된 것을 확인할 수 있고, which python
명령어를 입력해도 사용 중인 파이썬의 경로를 볼 수 있다.
파이썬의 버전은 새로운 가상환경을 생성할 때 설치되어 있는 파이썬의 버전으로 설치된다.
pip3 list
명령어를 입력해보면 다음과 같이 아무것도 설치되지 않은 상태인 것을 확인할 수 있다.
가상 환경에서 원래의 환경으로 돌아올 때는 deactivate
명령어로 간단하게 빠져나올 수 있다.
(test_env)
가 더이상 표시되지 않으며 패키지리스트에도 설치되어 있던 패키지가 다시 정상적으로 확인된다.
폴더에서 직접 삭제해도 되고 명령어로 삭제를 해도 된다.
rm -rf
명령어로 삭제한 결과이다.
가상 환경은 한 특정 프로젝트를 위한 경우가 많으므로 다음과 같이 생성할 수 있다.
mkdir [생성할 폴더/프로젝트 이름]
을 입력해서 폴더를 새로 만들어준다.python3 -m venv [생성한 폴더이름]/venv
를 입력하거나, cd
명령어로 해당 폴더로 이동 후 venv
라는 이름의 가상환경을 만든다.venv
는 관습적으로 쓰이는 이름이고 굳이 venv
로 만들 필요는 없다.source [생성한 폴더이름]/venv/bin/activate
를 하거나 이미 해당 폴더라면, source venv/bin/activate
를 입력해서 생성한 가상환경을 활성화시킨다.venv (혹은 지정한 가상환경 이름)
폴더에 프로젝트 파일을 넣지 말아야 한다.venv
파일은 깃에 커밋하지 않는다.pip3 list
명령어를 입력한 결과 requests
패키지가 설치되어있고 이 정보를 txt
파일로 저장한다.pip freeze > [파일명].txt
로 저장할 수 있다.cat [파일명].txt
로 텍스트 파일의 내용을 확인할 수 있다.pip install -r [파일명].txt
명령어로 해당 패키지를 한 번에 설치할 수 있다.venv
폴더를 커밋하지 않고 위와 같이 txt
파일을 생성하여 커밋한다.💡 가상환경을 생성할 때 원래 시스템에 있는 패키지를 모두 유지하려면?
pip -m venv venv --system-site-packages
명령어로 가상환경을 생성 후 활성화 시키면 원래 시스템에 있던 패키지를 새로운 가상환경에서도 사용할 수 있다.pip list --local
명령어로 해당 가상환경상에만 설치된 패키지를 확인할 수도 있다.