[실습 영상] : https://youtu.be/pfKecwaQYBk
플라스크에서 프로젝트는 하나의 웹 사이트라고 생각하면 된다. 즉, 플라스크 프로젝트를 생성하면 웹 사이트를 한 개 생성하는 것과 같다. 그리고 플라스크 프로젝트 안에는 보통 한 개의 플라스크 애플리케이션이 존재하는데 플라스크 애플리케이션이 무엇인지는 조금 후에 자세히 알아보자.
플라스크 프로젝트는 여러 개가 될 수 있으므로 프로젝트를 모아 둘 프로젝트 루트 디렉터리 생성은 필수다. 이 책은 C:\projects 디렉터리를 프로젝트들의 루트 디렉터리로 정하고 진행하겠다.
C:\> mkdir projects C:\> cd projects
그리고 프로젝트 루트 디렉터리 안에서 다음 명령어를 입력해 앞에서 만든 myproject 가상 환경에 진입하자. 가상 환경 진입 명령어가 길어서 좀 불편하겠지만 지금은 이 방법으로 가상 환경에 진입하겠다.
C:\projects> C:\venvs\myproject\Scripts\activate (myproject) C:\projects>
그리고 플라스크 프로젝트를 담을 myproject 디렉터리를 생성하고 이동하자.
(myproject) C:\projects> mkdir myproject (myproject) C:\projects> cd myproject (myproject) C:\projects\myproject>
myprojects가 아니고 myproject이므로 디렉터리명에 주의하자.
myproject 가상 환경에 진입하려면 매번 명령 프롬프트를 실행하고 C:\venvs\myproject\Scripts 디렉터리에 있는 activate 명령을 수행해야한다. 이런 일련의 과정을 한번에 수행할 수 있는 배치 파일을 만들어 편리하게 이용해 보자.
venvs 디렉터리에 myproject.cmd 파일을 만들고 다음처럼 작성한 후 저장하자.
@echo off cd c:/projects/myproject c:/venvs/myproject/scripts/activate
윈도우에서 확장자 .cmd가 붙은 파일을 배치(batch) 파일이라고 한다. 배치 파일은 여러 명령어를 한번에 실행해 주는 파일이라고 생각하면 된다. myproject.cmd 배치 파일의 내용은 C:/projects/myproject 디렉터리로 이동한 다음, C:/venvs/myproject/activate 명령을 수행하라는 뜻이다.
이 배치 파일이 명령 프롬프트 어느 곳에서나 수행될 수 있도록 C:\venvs 디렉터리를 시스템의 환경 변수 PATH에 추가해야 한다. 먼저 <윈도우+R> 키를 입력하여 다음처럼 sysdm.cpl 명령을 입력한 다음 <확인>을 누르자.
그러면 다음과 같은 ‘시스템 속성’ 창이 나타난다. 여기서 <고급> 탭을 선택하고 <환경 변수> 버튼을 누르자.
그러면 다음과 같은 ‘환경 변수’ 창이 나타난다. 여기서 사용자 변수 중
그러면 다음과 같은 ‘환경 변수 편집’ 창이 나타난다. 여기서 <새로 만들기(N)> 버튼을 누르자.
그리고 다음 그림처럼 C:\venvs라는 디렉터리를 추가하고 <확인> 버튼을 누르자.
마지막으로 다음 ‘환경 변수’ 창에서 <확인> 버튼을 누르자.
이렇게 하면 환경 변수 PATH에 C:\venvs 디렉터리가 추가되어 myproject.cmd 명령을 어디서든 실행할 수 있다. 명령 프롬프트를 다시 시작하자(그래야 변경된 환경 변수 PATH가 제대로 반영된다). 그리고 set path 명령을 실행하여 변경된 환경 변수 PATH의 내용을 확인해 보자. C:\venvs라는 디렉터리가 환경 변수 PATH에 포함되어 있으면 된다.
C:\Users\pahkey> set path Path=C:\Windows\system32; (... 생략 ...) ;C:\venvs PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
이제 지금까지 만든 myproject 명령(배치 파일명)을 실행하여 가상 환경에 잘 진입하는지 확인해 보자. 참고로 윈도우에서 확장자가 .cmd인 파일은 확장자까지 입력하지 않아도 된다.
C:\Users\pahkey> myproject (myproject) C:\projects\myproject>