본문 바로가기
Data Engineering

파이썬 가상환경과 패키지관리

by mimi_Bo 2021. 3. 17.

가상환경이란?

코드가 제대로 작동할 수 있도록 해주는 역할

가상환경이 필요한 이유는?

개발 당시에 잘 작동이 되었다면 배포 환경에서도 잘 작동이 되야겠죠? 하지만 배포 환경은 유저에 따라 다를 수 있겠죠

따라서 배포 환경에서도 개발 환경과 비슷하게 만들어서 최대한 잘 작동할 수 있도록 도와주어야 하기 때문에 가상환경이 필요합니다.

 

우리가 파이썬으로 코드를 짜기위해서 필요한 패키지, 모듈 등을 설치하고 코딩할 때 필요한 모듈 또는 패키지를 불러오잖아요!

 

내가 어떤 버전에서 프로그램을 개발했느냐에 따라서 배포환경에서도 해당 버전과 같아야 문제가 발생하지 않겠죠!?

따라서 우리는 가상환경을 통해 패키지, 모듈 등을 관리해주어야 합니다!

패키지 저장장소

파이썬 설치 시 함께 설치되는 패키지 = 표준 라이브러리 (standard library)
표준 라이브러리에서 파이썬이 사용하는 패키지 = system packages
표준 라이브러리가 아닌 제 3의 패키지 = site packages

먼저 패키지에도 종류가 있다는 것을 설명드릴게요!

위에 적은 것처럼 패키지에는 파이썬 설치 시 함께 설치되는 패키지가 있습니다. 이를 표준 라이브러리라고 부릅니다.

표준 라이브러리가 설치되어 있는 패키지 디렉토리를 확인하는 방법은 다음과 같습니다.

import sys
print(sys.prefix)

표준 라이브러리가 아닌 우리가 설치한 패키지들은 제 3패키지 또는 site packages라고 부릅니다. pandas, numpy 등이 제3패키지에 해당됩니다. 제3패키지는 다음과 같이 디렉토리를 확인할 수 있습니다.

import site
print(site.getsitepackages())

패키지들이 저장되는 방법

site packages의 디렉토리를 확인하면 설치된 파이썬 패키지들은 나열되어 있지만 버전이 나와있지 않습니다. 이렇게 되면 관리하기가 힘들어집니다. A 프로그램을 구현할 때 1버전이 필요하고 B 프로그램을 구현할 때 2버전이 필요한데 구분을 할 수 없으니까 관리가 어려워지겠죠~ (물론 pip list를 통해 버전을 확인할수도 있습니다.)

하지만 패키지를 불러올 때 이름으로만 불러오기 때문에 버전을 구별할 수 있는 방법이 필요합니다.

패키지 관리

여러 개의 파이썬 버전과 패키지 버전들을 따로 보관하는 것

X 패키지에 2개의 버전이 있어도 하나만 선택하여 사용할 수 있고 어떤 프로그램을 구현할지에 따라서 필요한 버전이 있을 수 있습니다. 만약 패키지 관리를 하지 않는다면 프로젝트마다 필요한 패키지를 계속해서 바꿔줘야만 프로젝트가 제대로 작동하겠죠?

따라서 프로젝트마다 하나의 가상환경을 만들어 패키지 관리를 해주는 것이 중요합니다!

하나의 가상환경을 만들고 해당 가상환경에서 새로운 패키지를 설치하게 되면 다른 환경에 영향을 미치지 않기 때문에 매우 편리하게 관리가 돼죠!

 

이상으로 가상환경이 필요한 이유 그리고 패키지 관리가 필요한 이유에 대해 알아봤습니다.  

'Data Engineering' 카테고리의 다른 글

Docker란?  (0) 2021.03.18
IP / DNS / Port 란?  (0) 2021.03.17
CLI와 명령어  (0) 2021.03.17
Docker-Compose 에서 Localhost 연결이 안될 때  (0) 2021.03.17
[과제 수행 과정]  (0) 2021.03.15

댓글