세라쌤의 IT 튜토리얼

Python3 virtualenv 설정 순서 (Windows10) 본문

PYTHON

Python3 virtualenv 설정 순서 (Windows10)

issell 2020. 5. 18. 18:58

virtualenv 는 인터프리터와 모듈을 로컬에 심어두는 대신, 이들을 프로젝트에 함께 묶어서 

도시락처럼 들고댕길 수 있게 해준다. 

내 django 프로젝트를 상대방에게 보여준다한들 상대가 django 모듈이 없다면 테스트가 불가능하고,

따라서 결국 상대방은 django를 설치해야 한다는 것이다.

그렇기에 보편적으로 requirements.txt 나 readme.md 로 의존성을 기입해두는데

가끔은 아예 django 모듈까지 통째로 주고 싶을 때가 있다.

그럴 때 사용하는 것이 virtualenv이다.

 

 

나는 가상환경을 개발환경 이전할 때, 압도적으로는 형상관리나 저장소에 올릴때 사용한다.

dependency의 노예이기도하고, 잠깐 보고 버릴 모듈을 굳이 내 컴퓨터에 넣어두고 싶지는 않기때문에.. 

다만 virtual environment는 OS 종류라던지 python version이라던지 상대 스펙이 다르면 민감한 모듈의 경우 가상환경에 올려놔도 하등 쓸모 없다. 

Docker를 사용하자 

 

[테스트 스펙]

win10 64bit
python 3.8
Pycharm

 

1. virualenv 설치

pip install virtualenv

참고) 버전 확인 : virtualenv --version

 

2. python 프로젝트 생성 

 

 

3. 가상환경 생성 : virtualenv [새폴더명]

여기선 가상환경 이름을 venv로 지었다.

(Terminal) ...\플젝>virtualenv venv 

 

4. 프로젝트 하위에 새폴더 생성되었는지 확인  ( 이곳이 모듈의 위치 )

플젝디렉
 └ venv
    └ Lib
    └ Scripts

 

 

5. Scripts 로 터미널 이동 후 activate.bat 실행 

(Termimal) ...\플젝>cd venv/Scripts
(Termimal) ...\플젝/venv/Scripts>activate 

 - 그러면 우측에 (venv) 이런 식으로 변경되어있음 

   venv가 활성화되면서 새설정을 받아들일 준비가 되었다는 뜻임.

   이 위치에서 pip install을 해야 설치된 모듈이 venv 측의 Lib에 저장된다.

   freeze도 이곳에서 수행한다. 

 

6. 이것 저것 필요한 모듈을 설치한다. (여기서는 numpy로 테스트)

(venv) ...\venv\Scripts>pip install numpy  (easy-install 도 괜찮다)

 

7. pip freeze 수행 (선택사항)

freezing 이란, 현재 설치된 모듈 리스트를 출력하는 기능을 한다. pip list 와 비슷하다.

이 작업은 가상환경과 관련 없다. 의존성 때문에 하는것

[그냥 목록만 보기]
(venv) ...\venv\Scripts>pip freeze  
requirements.txt 에 목록 저장 (프로젝트 폴더 바로 하위에 생성하는 것이 좋다.)
(venv) ...\venv\Scripts>pip freeze > ../../requirements.txt

requirements 대신 다른 이름을 사용해도 되지만 파이참의 경우 requirements.txt를 발견하면 알아서 모듈 설치를 안내해준다.

 

8. activate 종료 : deactivate.bat

(venv) ...\venv\Scripts>deactivate 

 

Comments