파이썬의 venv 모듈로 가상 환경 사용하기
하나의 컴퓨터 상에서 Python으로 개발된 여러 개의 프로젝트 돌리는 경우 프로젝트 간에 의존성(dependency) 충돌이 발생하기 쉬운데요. 예를 들어서 프로젝트 A에서 Django 패키지 3.x 버전을 사용하는데, 프로젝트 B에서 Django 패키지를 4.x 버전을 사용하고 있다면, 둘 중 하나의 프로젝트에서는 Django 앱을 실행할 때 오류가 발생할 가능성이 높습니다. 왜냐하면 두 개의 프로젝트가 동일한 컴퓨터에 설치된 하나의 파이썬 실행 환경(runtime)을 사용하므로 파이썬 패키지가 서로 공유되기 때문인데요. 만약에 프로젝트 B에서 마지막에 Django 패키지를 설치했다면 해당 컴퓨터에는 Django 4.x 버전이 설치되어 있기 때문에 Django 3.x 버전을 사용하도록 되어 있는 프로젝트 A에서 Django 앱을 실행할 때 패키지 버전이 맞지 않아 오류가 발생하는 것이지요. 파이썬에서는 패키지를 설치할 때는 보통 pip라는 패키지 매니저를 사용하는데, 기본적으로 해당 컴퓨터 상에서 파이썬이 설치된 경로의 site-packages 디렉터리에 안에 설치됩니다. 노드의 npm이나 자바의 maven과 같은 패키지 매니저가 프로젝트 별로 패키지 설치를 지원하는 반면에, 아직까지 파이썬의 pip는 시스템 전역으로만 패키지를 설치할 수 있습니다. 다른 언어와 달리 파이썬에서는 일반적으로 프로젝트 별로 독립된 개발 환경을 구성하기 위해서 가상 환경 (virtual environment)을 이용하는데요. venv라는 내장 모듈을 통해서 쉽게 가상 환경을 만들 수 있으며 이를 통해 프로젝트 간 의존성 충돌 문제를 효과적으로 예방할 수 있습니다. 파이썬에서 가상 환경(virtual environment)은 하나의 컴퓨터에서 프로젝트 별로 독룁된 파이썬 실행 환경(runtime)을 구성할 수 있도록 해줍니다. 가상 환경을 사용하지 않으면 컴퓨터 내의 모든 프로젝트에서 하나의 파이썬 실행 환경을 사용하면서 동일한 경로에 외부 패키지를 설치하고 서로 공유하게 됩니다. 이럴 경우, 하나의 프로젝트에서 설치한 패키지의 버전이 다른 프로젝트에서 설치한 동일 패키지의 다른 버전과 충동을 일으킬 소지가 생기기 때문에, 일반적으로 파이썬 프로젝트 별로 독립된 가상 환경을 구성하여 사용하는 것이 권장됩니다. 서론이 좀 길었네요 😅 아무튼 이번 시간에서는 파이썬에 기본으로 내장된 venv 모듈을 이용하여 가상 환경을 사용하는 방법에 대해서 알아보겠습니다. venv를 잘 활용하셔서 의존성 충돌에 대한 걱정 없이 프로젝트 별로 서로 격리된 파이썬 환경에서 개발하실 수 있으셨으면 좋겠습니다. 📺 동영상: https://youtu.be/aljQwnMFapE 📝 포스팅: https://www.daleseo.com/python-venv/ 혹시 파이썬의 패키지 매니저 pip를 사용하여 파이썬 패키지를 관리하는 기본적인 방법이 궁금하시다면 아래 게시물을 참고 바랍니다. https://careerly.co.kr/comments/87777