IT/CLI

파이썬 가상환경 설정

DS지니 2021. 3. 20. 01:34
728x90
반응형
realpython - Python Virtual Environmetns: A Primer

1. 가상환경(Virtual Environment) 

파이썬 가상환경의 주요 목적은 파이썬 프로젝트를 위한 격리된 환경을 만드는 것이다.
(가상환경의 가장 큰 장점은 환경들의 개수에 제한이 없다는 것이다.)
가상환경은 virtualenv 또는 pyenv 등의 명령줄 도구로 만들 수 있다.

 


2. 가상환경이 필요한 이유

다른 프로그램 언어와 마찬가지로 파이썬은 패키지(또는 모듈)를 다운로드, 저장, 해결하는 고유한 방식이 따로 있으며 버전마다 서로다른 부분들로 인해 발생하는 문제들이 있다.

1) 저장 위치에 따른 문제


:  파이썬 패키지들은 기본 패키지와 추가로 설치하는 제3패키지로 나눌 수 있다.

 

  • 기본패키지 (= system packages, standard library)
# system packages 

import sys 
print(sys.prefix)

 

  • 제3패키지 (= site packages, third party libraries) ex)pandas, numpy .etc
# site packages list 

import site 
print(site.getsitepackages())

 

2) 저장 방식에 따른 문제

 

: site packges 디렉토리를 보면 알 수 있듯이 각 패키지들은 버전 번호가 따로 관리되지 않고 이름으로만 저장되기 때문에 버전의 구별이 불가능하다. 그렇기에 각기 다른 버전을 필요로하는 프로젝트들을 진행하는 경우 각자 가상환경을 만들어 필요한 파이썬 버전과 패키지 버전들을 독립적으로 다운받아 사용하고 관리한다.

 

'높은 버전이 더 좋은 거 아닌가?' 라고 생각 할 수 있지만 항상 그렇지는 않다. 버전이 올라갔다는 것 자체가 변화했다는 의미를 내포하기 때문에 특정 기능들이 삭제, 변경, 혹은 이동되었을 수도 있고 새로운 기능들이 추가되었을 수도 있다. 그렇게 된다면 버전 1에 맞춰 설계된 코드가 갑자기 작동을 안 할 수도 있다는 뜻.


3. 가상환경 대표 모듈들

1) venv

: python 3.3 버전 이후부터 기본모듈에 포함됨

 

2) virtualenv

: python 2 버전부터 사용해오던 가상환경 라이브러리(python2,3에서 모두 사용 가능)

 

3) conda

: Anaconda Python을 설치 했을 시 사용할 수 있는 모듈

 

4) pyenv

: 파이썬 버전관리 툴(python version manager)임과 동시에 가상환경 기능을 플러그인 형태로 제공. virtualenv는 최신 시스템 버전으로 환경을 업그레이드 할 수 있지만 특정 버전을 지정할 수 없다. 하지만 pyenv는 버전관리가 가능하다.
버전 요구 사항이 다양한 프로젝트가 많은 개발자에게 좋음. 모든 프로젝트의 기본 버전을 쉽게 변경할 수있을 뿐만 아니라, 특별한 경우를 지정할 수도 있다.

 

5) 그 외

pipenv 등

 

다음 포스팅 - 가상환경 대표 모듈들

 

가상환경의 대표 모듈들

1) venv : python 3.3 버전 이후부터 기본모듈에 포함됨 2) virtualenv : python 2 버전부터 사용해오던 가상환경 라이브러리(python2,3에서 모두 사용 가능) 자세한 코드 확인 : realpython.com/python-virtual-e..

gggggeun.tistory.com

 


4. 가상환경 활성화(activate)

개발자에게 있어 내부에 어떤 일이 벌어지고 있는지 파악하는 것이 매우 중요하다.

(특히 실행 환경, 종속성 해결 등을 이해해야 하는 경우)

 

<가상환경이 어떻게 작동되는지 확인하는 방법>

: 활성화 전과 후의 python 경로의 차이점 확인

 

- 비활성화 상태에서 python 실행 파일의 위치를 확인
$ which python

 

- 가상환경 활성화(activate) 후

$ which python 다시 실행


실제 두 python 실행 파일 간의 차이는 없다.

중요한 것은 가상환경을 실행하면 python의 디렉토리 위치가 로컬에서의 위치와 서로 다르다는 것이다.

 

 

5. 결론

이처럼 패키지 설치 문제를 해결하는 방법이 다양한데, 개발자로서 이러한 도구를 활용하는 방법을 배우는데 많은 시간을 들여 공부하는 것이 좋다. 다른 부분에서 비슷하게 응용해 해결 방법을 찾을 수도 있기 때문이다.

 

728x90
반응형

'IT > CLI' 카테고리의 다른 글

나만의 가상환경 순서 만들기 (conda 사용)  (0) 2021.03.20
가상환경의 대표 모듈들  (0) 2021.03.20
CLI 기본 명령어  (0) 2021.03.20
CLI의 기능  (0) 2021.03.20
터미널, 쉘, POSIX, CLI 이란?  (0) 2021.03.20