youngfromnowhere

[Python] 가상환경 본문

Python

[Python] 가상환경

곽일땡 2022. 11. 3. 00:15

예전에 한창 django를 배워보겠다고 할 때 Python 가상환경을 활성화 시켜본 적이 있었는데

 

몇 달 지나니 다 까먹었다.

 

이번에 다시 한 번 정리해본다.

 

  • 가상환경을 사용하는 이유.

Python으로 개발할때 가상환경을 사용하는 이유는 해당 프로젝트에서 사용하는 외부 패키지의 버전 호환성 문제 때문이다. 가령 한 PC에서 프로젝트 A를 진행할 땐 패키지 X의 1.5 버전을 사용하고 프로젝트 B에는 같은 패키지의 2.0 버전을 사용했는데, 두 버전이 호환되지 않으면 프로젝트를 전환할 때마다 버전 upgrade와 downgrade를 반복해야 할 것이다. 따라서 프로젝트 별로 외부 패키지가 일관되게 적용되도록 가상환경을 설정하여 그 곳에 패키지를 설치한다.

 

  • 가상환경 설정 방법

Project를 진행할 directory에서 다음 명령어를 실행한다. (OS : WSL2 Ubuntu)

$ python3 -m venv [venv name] #name of virtual environment directory

가상환경이 설치되면 project directory 안에 [venv name]으로 전달한 이름을 가진 directory가 생성되고, 그 안에 bin/ include/ lib/ 등의 파일이 생성된다. 가령 venv name을 myenv로 설정했다고 하자.

 

가상환경을 활성화 시키려면 myenv/ directory 에서 다음 명령어를 실행한다.

$ source ./bin/activate

가상환경이 활성화 되면 command-line 왼쪽에 가상환경 directory의 이름이 표시된다.

가상환경이 활성화된 모습.

비활성화 명령어는 deactivate이다.

가상환경을 설정하고 활성화시킨 뒤에 pip로 외부 패키지를 설치하고 프로젝트를 진행하면 된다.

 

Python의 package file들은 python 설치 directory의 'site-packages'에 저장된다. 다음 스크립트로 가상환경이 활성화 되었을때와 비활성화 되었을때 'site-packages'파일의 경로 차이를 확인할 수 있다.

import sys
print(sys.path)

'Python' 카테고리의 다른 글

[Python] python의 special methods  (0) 2022.11.17
[Python] Decorator3. Property  (0) 2022.11.16
[Python] Decorator 2. abstractmethod()  (0) 2022.11.15
[Python] Decorator  (0) 2022.11.07
[Python] Python의 Method Call  (0) 2022.10.31