파이썬 가상 환경 생성 (venv)

2021. 8. 10. 23:42
반응형

가상환경?

Python 3.3 부터 지원하는 기능이다.
"가상 환경"은 독립적인 개발 환경을 만들어준다.
따라서, 다른 환경에 영향을 주지도 받지도 않는 환경(폴더 공간으로 이해해도 좋다)이 만들어진다.
파이썬에서 제공하는 가상환경 외에 다른 가상환경 도구들도 많이 있다. (ex 도커)

가상환경이 필요한 경우

예를들면, 내가 A, B 두 개의 프로젝트를 진행하고있다.
여기에 각각 a, b, c라는 라이브러리를 사용한다고 하자.
이때, 사용해야 할 a, b, c 버전이 다르게 요구되며, 버전을 바꾸면 안된다.
따라서 각각 다른 버전의 라이브러리를 사용하는 독립된 공간이 필요하고, 가상환경이 이를 가능하게 한다.

가상환경 생성

# Bash나 cmd 창에서 진행합니다.
~/<프로젝트 위치>
$ python -m venv <폴더명>
  • 폴더명은 자유롭게 사용 가능하나 일반적으로 venv를 사용한다. (소통을 해야한다면 지키는것이 좋다.)
  • 실행 후 venv 폴더가 생성된 것을 확인한다.

가상환경 활성화 (윈도우 기준)

$ source venv/Scripts/activate
  • 입력 후 (venv)가 출력된 것을 확인한다.
  • 여기서 pip list를 통해 global과 차이를 확인 할 수 있다.

가상환경 종료

$ deactivate
  • 다른 프로젝트로 이동할때 가상환경을 종료한다.
  • cmd나 bash를 닫아서 종료할 수 있다.

 


가상환경 package 복사하기

가상환경에 설치된 라이브러리(이름과 버전 정보)를 복사하는 방법이다.
프로그램을 직접 복사하는것이 아니라, 이름과 버전 정보만 복사한다.
새로 복사할 환경에서 pip 등을 이용하여 다시 설치하는 방식이다.

#복제하고자 하는 가상환경에서
$ pip freeze > [파일명.txt]
  • 파일명은 requirements.txt가 일반적이다.
  • 생성된 txt파일을 원하는 가상환경에 복사한다.
  • 프로젝트 공유를 위해 requirements.txt를 github에 올리기도 한다.

가상환경 복제

#새로운 가상환경에서
$ pip install -r [파일명.txt]
  • `pip list`를 이용해서 설치를 확인한다.

쉬운 오해

가상환경은 생성된 폴더 위치에서만 동작한다 -> X

  • 생성한 directroy에 venv 폴더가 있을뿐이지, 다른 directory에서도 사용이 가능하다.
    즉, 폴더 개념으로 묶인것이 아니다.
  • 하지만, 사용하는 프로젝트 내부에 venv를 만들어서 사용하는 것이 일반적이다.
    (각각 프로젝트의 최상단에 위치한다.)
  • 다른 프로젝트에서 같은 환경을 쓰고싶다면, 새로 venv를 만들어 `requirements.txt`로 복사해서 사용한다.

Ref. https://docs.python.org/ko/3/library/venv.html (파이썬 공식문서)

반응형

BELATED ARTICLES

more