python - 가상환경

full_accel·2020년 12월 6일
0
post-thumbnail

python의 가상환경

python의 가상환경이란?

python은 생태계가 잘 구축된 언어이다. 즉, 유용한 라이브러리와 패키지들이 아주 많다. 이미지를 처리하고 싶으면 pillow를 쓰면 된다. 마크다운을 다뤄야 한다면 markdownx가 있다. 웹 페이지를 만든다면 Django도 있고, Flask도 있다. 골라 쓰면 된다. 크롤링을 한다면 BeautifulSoup과 Selenium을 취향것 섞어서 어지간한 건 다 할 수 있다.

python의 가상환경은 이러 다양한 라이브러리들을 하나의 조합으로 묶어준다. 예를 들어 Flask로 웹페이지를 개발하고 있다고 하자. 가상환경을 생성하여 Flask와 pillow, markdownx 등의 필요한 라이브러를 해당 가상환경에 설치할 수 있다. 그리고 개발은 그 안에서만 하면 된다. 이렇게 하면 다른 python 프로젝트에는 이 라이브러리들이 영향을 미치지 않는다.

python 가상환경을 사용하는 이유

python 가상환경을 사용하면 프로젝트별 라이브러리 관리가 아주 용이해 진다.

동시에 여러가지의 프로젝트를 진행해야 하는 경우가 있다. 가령 Django로 작성중인 웹페이지 프로젝트와 Flask로 작성중인 웹페이지 프로젝트가 동시에 내 컴퓨터에 있을 수 있다.

Django 프로젝트에 필요한 라이브러리와 Flask 프로젝트에 필요한 라이브러리는 다를 것이다. 이 경우에 가상환경으로 각각 필요한 라이브러리를 나누지 않고 전역으로 라이브러리를 설치하여 개발하다보면 어디에 뭐가 필요했는지 헷갈리기 시작한다. 이 헷갈리는 상태에서 서버에 프로젝트를 올리면 십중팔구 개고생하기 십상이다.

이런 사단을 미연에 방지하기 위해서 python을 이용한 개발은 python이 제공해주는 훌륭한 가상환경이라는 기능을 활용하도록 하자.

Djnago 프로젝트와 Flask 프로젝트 각각 가상환경을 생성하고, 그 안에서만 개발하면 관리하기가 아주 용이하다.

python 가상환경 설정하는 방법

python을 이용하는 방법

가상환경 생성

  • 가상환경을 생성할 폴더로 이동
  • 가상환경 생성

python을 설치하면 기본적으로 venv를 사용할 수 있다. 아래의 명령어로 간단하게 가상환경을 생성할 수 있다.

D:\venvs>python -m venv django_project

이렇게 하면 D 드라이브의 venvs 라는 경로 밑에 django_projects 라는 폴더가 생성된다.

D:\venvs\django_project 디렉터리

2020-12-06  오후 10:40    <DIR>          .
2020-12-06  오후 10:40    <DIR>          ..
2020-12-06  오후 10:40    <DIR>          Include
2020-12-06  오후 10:40    <DIR>          Lib
2020-12-06  오후 10:40                88 pyvenv.cfg
2020-12-06  오후 10:40    <DIR>          Scripts
               1개 파일                  88 바이트
               5개 디렉터리  814,355,423,232 바이트 남음

D:\venvs\django_project>

가상환경 활성화

  • 가상환경 경로의 activate 파일을 실행
D:\venvs\django_project>cd Scripts
D:\venvs\django_project\Scripts>activate 

이렇게 입력하면 프롬프트가 갱신되면서 아래와 같이 django_project 가상환경에 진입하게 된다.

(django_project) D:\venvs\django_project\Scripts>

왼쪽의 (django_project) 로 현재 가상환경을 확인할 수 있다.

가상환경에서 라이브러리 설치

  • 현재 경로는 python 가상환경에 필요한 파일들을 위한 경로이다.
  • 실제 python 프로젝트를 진행할 폴더로 이동하고
  • 가상환경으로 라이브러리를 설치하여
  • 프로젝트를 시작하자.
(django_project) D:\venvs\django_project\Scripts>cd \python_projects
(django_project) D:\python_projects>
(django_project) D:\python_projects>pip install django
Collecting django
(... 생략 ...)
Successfully installed asgiref-3.3.1 django-3.1.4 pytz-2020.4 sqlparse-0.4.1

(django_project) D:\python_projects>pip list
Package    Version
---------- -------
asgiref    3.3.1
Django     3.1.4
pip        19.2.3
pytz       2020.4
setuptools 41.2.0
sqlparse   0.4.1

(django_project) D:\python_projects>django-admin startproject django_project

(django_project) D:\python_projects>dir
 D 드라이브의 볼륨: DATA
 볼륨 일련 번호: 22AF-B8BC

 D:\python_projects 디렉터리

2020-12-06  오후 10:55    <DIR>          .
2020-12-06  오후 10:55    <DIR>          ..
2020-12-06  오후 10:55    <DIR>          django_project
               0개 파일                   0 바이트
               3개 디렉터리  814,308,507,648 바이트 남음

(django_project) D:\python_projects> 

가상환경 비활성화

가상환경을 비활성화 하려면 아무 경로에서나 deactivate 를 입력하면 된다.

(django_project) D:\python_projects>deactivate
D:\python_projects> 

가상환경과 전역환경의 차이

가상환경을 빠져나와서 (전역환경에서) pip list로 확인해 보면 가상환경에 설치된 라이브러리 목록과 다른 라이브러리들이 설치되어 있음을 확인할 수 있다.

(django_project) D:\python_projects>deactivate
D:\python_projects>pip list
Package                            Version
---------------------------------- -------------------
alabaster                          0.7.12
anaconda-client                    1.7.2
anaconda-navigator                 1.9.12
(... 생략 ...)

django_project 가상환경에 접속한 상태에서 위에서 생성한 django_project의 파일을 실행하면 가상환경에 설치된 라이브러리들 기준으로 파일을 실행한다.

반면 전역 공간에서 django_project의 파일을 실행하면 전역공간에 설치된 라이브러리들이 적용된 상태로 파일을 실행하게 된다.

conda를 이용하는 방법

conda를 설치하면 파이썬과 함께 주요 라이블러리들이 함께 설치된다. 온갖 꿀 라이브러리들을 함께 설치해주는 anaconda와 그보다 가볍게 사용할 수 있는 miniconda가 있다. 둘 다 가상환경 구성방법은 동일한다.

여기서는 conda로 가상환경 생성하고 기동하는 부분과 pip를 설치하는 부분(minconda로 가상환경을 생성한 경우 pip가 자동으로 설치되지 않는다.)까지만 살펴본다. 나머지 부분은 위의 내용을 참조하면 된다.

conda 가상환경 생성

D:\>conda create -n flask_projects python=3.8
Collecting package metadata (current_repodata.json): done
Solving environment: done
(... 생략 ...)
Proceed ([y]/n)?

conda로 가상환경을 생성하는 경우엔 설정하고자하는 파이썬 버전을 명시해 주어야 한다. python만 설치하는 경우엔 애초에 하나의 파이썬 버전만 설치되지만, conda로 가상환경을 설치하는 경우엔 가상환경에 파이썬 자체를 설치한다. 따라서 어떤 파이썬을 설치할지 명시해 주어야 한다.

conda 가상환경 활성화

아래의 명령어로 conda로 생성한 가상환경을 활성화 시킬 수 있다.

D:\>conda activate flask_project

(flask_project) D:\> 

pip 설치

만약 miniconda로 가상환경을 생성했다면 가상환경에 pip가 자동으로 설치되지 않는다. 이 경우 conda 명령어로 pip를 설치해야 한다.

D:\>conda install pip

설치가 완료되면 pip 사용이 가능하다.

conda 가상환경 비활성화

conda 가상환경의 비활성화는 conda deactivate 명령어로 가능하다.

(flask_project) D:\>conda deactivate

D:\>
profile
스스로 배운 것이 오래 간다.

0개의 댓글