[파이썬] 파이썬 2와 파이썬 3의 가상 환경 및 의존성 관리 차이

파이썬은 많은 프로젝트에서 사용되는 인기있는 프로그래밍 언어입니다. 그러나 파이썬 2와 파이썬 3 간에는 몇 가지 주요 차이점이 있습니다. 이 중 가상 환경과 의존성 관리에 대한 차이점을 살펴보겠습니다.

가상 환경(Virtual Environment)

가상 환경은 파이썬 프로젝트를 격리시키고 프로젝트 간의 의존성 충돌을 피하기 위한 독립된 환경을 생성합니다. 이를 통해 한 컴퓨터에서 여러 버전의 파이썬을 사용할 수 있으며, 각 프로젝트가 독립적인 환경을 가지므로 의존성 충돌에 대한 걱정 없이 프로젝트를 개발할 수 있습니다.

파이썬 2의 가상 환경

$ virtualenv myenv
$ source myenv/bin/activate

커맨드 라인에서 virtualenv 명령어를 사용하여 가상 환경을 생성하고, source 명령어로 가상 환경을 실행합니다. 이후에는 파이썬, 패키지 설치 등의 작업을 가상 환경에 진행할 수 있습니다.

파이썬 3의 가상 환경

$ python3 -m venv myenv
$ source myenv/bin/activate

파이썬 3에서는 venv 모듈을 통해 가상 환경을 생성합니다. 기존의 virtualenv와 유사하게 사용할 수 있지만, 파이썬 3의 내장 모듈을 사용하기 때문에 추가적인 설치가 필요하지 않습니다.

의존성 관리

파이썬 프로젝트에서는 종종 다른 패키지에 의존하기 때문에, 올바른 버전의 패키지를 관리해야 합니다. 의존성을 관리하기 위해 많은 도구와 방법이 있지만, 대표적으로 piprequirements.txt 파일이 있습니다.

pip

pip은 파이썬 패키지 관리를 위한 기본 도구입니다. pip install 명령어를 사용하여 패키지를 설치하고, pip uninstall 명령어로 패키지를 제거할 수 있습니다. 또한, pip freeze 명령어를 사용하여 현재 프로젝트의 의존성 목록을 출력할 수 있습니다.

requirements.txt

requirements.txt 파일은 프로젝트의 의존성 패키지 목록을 저장하는 텍스트 파일입니다. pip install -r requirements.txt 명령어를 사용하여 requirements.txt에 명시된 패키지를 일괄 설치할 수 있습니다.

일반적으로 프로젝트를 공유하거나 버전 관리 시스템에 포함시킬 때 requirements.txt를 사용하여 의존성을 명시적으로 관리합니다.

결론

파이썬 2와 파이썬 3는 가상 환경 및 의존성 관리에 있어서 약간의 차이가 있습니다. 파이썬 2에서는 virtualenv를 사용하고, 파이썬 3에서는 venv 내장 모듈을 사용하여 가상 환경을 생성합니다. 의존성 관리는 모두 pip를 통해 이루어지며, requirements.txt 파일을 사용하여 명시적으로 의존성을 관리할 수 있습니다. 해당 기능들을 잘 활용하여 프로젝트를 개발하고 관리할 수 있도록 하세요.