본문 바로가기
Python

venv 가상환경 구성하기 01

by To올라운더 2023. 5. 30.
반응형

0. 왜 가상환경이 필요한가요?

 가상환경이 꼭, 항상, 누구에게나 필요하진 않다.

 (*사실 이글을 읽는다면 가상환경이 뭔지도 모를 확률이 더 높다.)

 특히, 개인적으로 개발 업무를 하거나 한개의 프로젝트를 한다면 굳이 할 필요는 없다.

 하지만, 아래의 여러가지 이유로 가상환경을 구성하는 것을 권장한다.

  - 2인 이상이 개발업무를 할 경우

  - 여러개의 프로젝트를 진행할 경우

  - 기존의 프로젝트에 대한 update 내용을 테스트할 경우 등

 

1. venv 가상환경이 도대체 뭔가요?

작업을 원활히 하기위해 책상 주변에 필요한 물품들을 정리하듯,

우리는 프로젝트를 완수하기 위해 우리가 작성한 패키지뿐 아니라

이미 다른 사람들이 같은 목적으로 작성해 둔 패키지도 사용하게 된다.

이런 넓고 다양한 인력풀과 패키지 모듈을 통해 더 효율적인 개발을 할 수 있는데,

그렇다보니 작업 환경에 대해 서로 어느정도의 수준을 넘어선 정확한 약속을 해야

오류를 줄이고, 정확한 결과물을 얻을 수 있다.

반응형

1) if 2인 이상 개발 업무를 할 경우,

예를 들어 3명의 팀원이 같은 책에 있는 글을 10장씩 나눠서

종이에 옮겨 적는다고 가정해보자.

3명이 처음 모여 의견을 나눌 때, 흰 종이에 검은 펜으로 쓰고

중요한 내용은 빨간색으로 하자고 약속을 했는데,

 

1번째 사람은 스케치북에 매직으로,

2번째 사람은 A4용지에 모나미 볼펜으로,

3번째 사람은 B5용지에 만년필로 글을 옮겨 적는다면

이 3사람이 작업한 글을 하나로 모았을 때,

한권을 복사한 노트라는 생각이 들까?

빨간색까지 제각각이라면?

아니, 크기가 다른 종이를 한권으로 합칠 수는 있을까?

 

2) elif 여러개의 프로젝트를 진행할 경우,

또 위와는 조금 경우가 다르지만 여러개의 프로젝트를 진행할 경우,

달라진 기능을 적용하기 위해 기존에 설치된 패키지를 upgrade 해야 하는 경우가 발생할 수 있는데

upgrade 이후 다른 프로젝트가 정상동작하지 않으면....(*이런 문제를 호환성의 문제라고 한다.)

우리는 PC를 따로 한대를 더 사야 하는걸까?

 

아무튼...이런 이상한 상황들을 피하기 위해 우리는 각각의 구별된 개발 환경인 가상환경(venv)를 사용한다. 

 

 

2. 가상환경은 어떻게 쓰는건가요?

 - 파이썬에서는 아래와 같이 가상환경을 구성할 수 있는 방법이 4가지 정도 있지만,

  1. virutalenv를 사용한다.
  2. venv를 사용한다.
  3. 아나콘다 파이썬을 사용한다.
  4. 미니콘다 파이썬을 사용한다.

오늘 소개할 방법은 내장모듈인 venv를 이용하는 방법이다.

내장 모듈인 만큼 별도로 설치 하지 않아도 된다.

 

2-0. 가상환경 구성 전 기본 환경에서의 버전 확인

설정하기에 앞서 기본 환경에서 excel을 다루는 openpyxl 의 버전을 확인해보면

pip freeze | findstr openpyxl

oepnpyxl == 3.0.7 임을 알 수 있다. 

(*해당 모듈이 사전에 설치되지 않았다면  내용 확인시 아무런 메세지가 나타나지 않으며,

해당 버전 정보를 미리 보여주는 이유는 가상환경에서 다른 버전이 생성되는 것을 확인하기 위한 검증용 과정이다.)

 

2-1. workspace(folder)설정 하기

좌측에 작업을 진행할 폴더를 설정하고,

터미널에 python -m venv [가상환경 폴더 설정 이름] 을 입력해보자.

python -m venv excel_edit  
#python -m venv [가상환경 폴더 설정 이름]

좌측에 입력한 excel_edit 이라는 폴더가 생긴다.

우측 하단에 작업 영역 폴더를 변경할지에 대한 메세지도 나타나게 되는데 이때 '예'를 선택한다.

 

2-2. New Terminal(Ctrl + Shift + `(백틱)

New Terminal을 생성해 주면

실제 가상환경으로 만든 excel_edit 폴더 하위에 있는

.\Scripts\Activate.ps1 이 실행된다.

정상적으로 실행이 되고 나면 터미널 창의 경로가 기존과는 달리

폴더 이름앞에 (excel_edit) 이라는 표시가 나타나며 가상환경임을 나타내 준다.

(*폴더 이름 앞에 excel_edit 은 2-1에서 설정한 폴더 이름으로 생성된다.)

 

2-3. 진짜 가상환경 맞나?

 - 새로 생긴 작업환경(가상환경)이 맞는지 의심이 드시는 분들이 있을 것이다.

 - 아까 venv를 사용하기 전 적용했던 pip freeze | findstr openpyxl 로 openpyxl의 버전을 확인해보면

처음과는 달리 아무런 결과물도 나타나지 않는다. 실제 가상환경에 openpyxl 이 없기 때문인데,

pip list로 확인해보면 현재 가상환경에 pip와 setuptools 모듈만 설치되어 있음을 알 수 있다.

 

2-4. 특정버전의 모듈 설치해보기

pip install openpyxl 을 입력하면 최신버전의 poenpyxl이 설치 되지만 

pip install openpyxl==3.0.2

openpyxl 의 특정 버전(3.0.2)을 입력할 경우 해당 버전의 설치가 진행된다.

(*로그에서와 같이 잘못된 버전 정보를 입력하게 되면 경고창과 함께 사용가능한 버전 정보를 확인할 수 있다.)

처음 모듈을 설치하기 전과 비교해보면 설치 전(빨간박스), 설치 후(노란박스)

기본 환경과 별도로 원하는 버전의 패키지 모듈이 설치되었음을 확인할 수 있다.

 

이제 이러한 방법으로 프로젝트별로 원하는 작업을 하면 된다.

약간의 분량 조절 실패로....

설치된 버전에 대한 전달 및 복제 방법에 대해서는 다음 포스팅에 작성해보겠다.

 

 

2-5. 가상환경 탈출(종료)하기....내용 추가

포스팅을 완료하고 나니...

가상환경을 쓰는 방법만 알려주고 종료하는 방법을 알려주지 않았다.

방법은 간단한데, deactivate 라고 입력만 해주면 아래와 같이 

(excel_edit) 이라는 venv 표시가 사라지고 메인 환경의 인터프리터로 전환된다.

진짜 끝. 버전 관리 및 전달은 다음 포스팅에..

2023.06.03 - [IT 배우기/Python] - venv 가상환경 구성하기 02(모듈 복사)

 

venv 가상환경 구성하기 02(모듈 복사)

오늘 진행할 내용은 지난번 venv를 생성하는 방법에 이어 2023.05.30 - [IT 배우기/Python] - venv 가상환경 구성하기 01 venv 가상환경 구성하기 01 0. 왜 가상환경이 필요한가요? 가상환경이 꼭, 항상, 누구

to-all-rounder.tistory.com

 

반응형

'Python' 카테고리의 다른 글

10. 파이썬 집합(set) 특징  (0) 2023.06.27
09. 파이썬 리스트(list) 특징  (0) 2023.06.26
08. 파이썬 튜플(tuple) 특징  (0) 2023.06.25
07 파이썬 Boolen(참,거짓)  (0) 2023.06.24
venv 가상환경 구성하기 02(모듈 복사)  (0) 2023.06.03