[Python] Python 가상환경 만들고 배치파일로 쉽게 진입하기

파이썬 가상환경은 프로젝트를 진행할 때 나만의 개발 환경을 만들어주는 좋은 도구다. 만약 내가 프로젝트를 2개를 맡았다고 가정하자. 1번 프로젝트는 버전 2의 라이브러리를 사용하지만 2번 프로젝트에서는 버전 3의 라이브러리를 사용할 수 있는데, 이런 경우 하나의 PC에서 충돌할 수 있고 이 때 필요한게 가상환경을 만들어 주는 것이다.

 

물론, 하나의 프로젝트에서 가상 환경은 필수는 아니지만 나는 항상 사용하는 것이 유용한 듯 하다!

가상 환경 사용 방법은 다음과 같다. 

 

Pyhon 가상환경 만들기

가상환경 디렉토리 생성

윈도우 명령 프롬프트(CMD) 실행 후 코드 작성

C:\Users\ucomp>cd\          # C드라이브 디렉토리로 넘어가기
C:\>mkdir venvs             # 원하는 이름의 가상환경 디렉토리 생성
C:\>cd venvs                # 디렉토리 진입

 

가상환경 만들기

파이썬 가상환경을 만들어주는 명령어

C:\venvs>python -m venv myapi

1. python -m venv 부분은 파이썬 모듈 중 venv라는 모듈을 사용한다는 의미다.

2. myapi 부분은 본인이 원하는 가상환경의 이름을 지어주면 된다.

 

가상환경 진입하기

가상환경은 생성한 myapi에 있는 Scripts 디렉토리에서 activate 명령어를 실행하면 가상환경에 진입할 수 있다!

C:\venvs>cd C:\venvs\myapi\Scripts
C:\venvs\myapi\Scripts>activate

activate에 성공하면 (myapi)를 확인할 수 있는데, 내가 지은 가상환경에 진입했다는 것을 알 수 있다!

또한 어떤 가상환경에 진입하고 있는지도 알 수 있다.

 

가상환경 벗어나기

deactivate 명령어를 실행해주면 가상환경에서 벗어날 수 있다!

(myapi) C:\venvs\myapi\Scripts>deactivate  # 가상환경 벗어나기

가상환경에서 벗어나면 (myapi) 프롬프트가 사라진다.

 

 

배치 파일로 가상 환경 쉽게 진입하기

테스트 진행을 위한 프로젝트 디렉토리 생성(필요없을 시, 안해도 됨)

내가 사용할 프로젝트 디렉토리에 진입

C:\> mkdir projects     # C드라이브에 projects 폴더 만들기
C:\> cd projects        # projects 폴더 진입

 

projects 안에서 myapi 가상환경 진입

C:\projects> C:\venvs\myapi\Scripts\activate

 

myapi 디렉토리 생성 후 이동

(myapi) C:\projects> mkdir myapi
(myapi) C:\projects> cd myapi
(myapi) C:\projects\myapi>

 

배치 파일 생성하기

배치 파일은 .cmd 확장명을 갖고 있는 파일을 말한다.

venvs 디렉토리에 myapi.cmd 파일을 만들고 다음처럼 작성하면 되는데, 

모르는 분들은 메모장에 저러한 구조로 저장한 다음 파일 확장명을 cmd로 바꿔주면 된다.

@echo off
cd c:/projects/myapi
c:/venvs/myapi/scripts/activate

c:/projects/myapi 디렉토리 이동 후, c:/venvs/myapi/scripts/activate 명령을 수행한다는 의미

 

배치 파일 위치 Path 환경 변수 추가

<윈도우+ R> 키나 찾기에서 실행을 찾아 클릭해주면 실행창이 나오는데, 여기서 검색란에 sysdm.cpl이라고 검색해준다.

 

[고급]-[환경변수]에 진입한다.

 

변수 <Path> 선택 후, <편집> 선택한다.

 

<새로 만들기> 선택 후, C:\venvs 추가 후 확인 확인 확인 선택

 

이렇게 세팅이 다 되면 이제 myapi.cmd 명령어를 어디서든 실행할 수 있게 된다.

 

배치 파일 실행하여 가상 환경 진입하기

지금까지 만든 배치 파일을 실행하면 된다. 윈도우에서는 확장자명이 cmd인 파일은 확장자명까지 쓸 필요없다.

C:\Users\ucomp>myapi
(myapi) C:\projects\myapi>

이렇게 "myapi" 을 작성했을 때, "(myapi) C:\projects\myapi>" 가 나온다면 가상환경에 잘 진입된 것이다!

 

<참조자료>

https://wikidocs.net/175831