본문 바로가기
Backend/Python

[Python] Flask 배포와 개발 환경 pip freeze

by 천우산__ 2023. 4. 1.

Flask 미니 프로젝트 완성 후 aws를 통한 배포를 위해

 

1. 배포용 디렉토리 생성

2. 1의 하위로 개발 진행한 파일들 복사

3. 개발 환경에서 사용한 패키지와 버전 기록 (pip freeze > requirement.txt)

4. aws 배포 환경 구성 후 배포

 

의 순서대로 진행하였며, 배포까지는 원활하게 이뤄졌지만, 확인해보니 502 error 을 확인하였다.

aws 로그를 확인해도 정확한 원인을 알 수 없었는데, 멘토님의 도움으로 확인하는 방법을 알았다.

 

아래의 방법은 당시에 발생했던 문제의 국한된 것으로 모든 에러를 확인하고 조치할 수 있는 것은 아님을 알려드립니다.

 

1. aws 환경 > 로그 > 전체 로그 다운로드

2. 다운로드 받은 폴더 > log > web.stdout.log 파일 확인

3. 최하단 부분 기록 중 에러 메세지 확인

 

3번 부분 확인 중  Flask 패키지가 없다는 내용을 확인했다.

개발을 Flask 로 했는데, 이런 일이 발생 할 수 있나? 라는 생각이 들었고, 개발환경에서 설치되지 않은 패키지들과 버전을

requirement.txt 파일에 추가한 후 재배포를 진행하니, 정상적으로 접속이 가능한 점을 확인했다.

 

그 다음날, 일어나서 문득 든 생각은 배포 단계에서 실수했기 때문에 위와 같은 상황이 발생했다는 것을 깨달았다.

일반적인 경우, 웹 개발 시 라이브러리간 버전 호환 문제로 인해 충돌이 발생하는 것을 막기 위해

 

가상환경으로 개발 진행 후 가상환경에서 설치한 라이브러리들을 pip freeze 를 진행했어야하는데

배포 단계에서는 가상환경을 해제한 후 라이브러리 정보를 기록하여 웹 페이지 개발에 사용한 패키지가 대부분 등록이 되어있지 않았던 것

 

Flask는 사용중인 컴퓨터에서 설치한 적이 없었기 때문에 이런 상황이 발생한 것이었다.

만약, 가상환경에서 사용한 모든 라이브러리가 기본 환경에도 설치되어있었다면, 별다른 문제 없이 배포되었을 것이고

오류를 겪어보지 않았을 수 있지만

 

연습할 때 이런 경험을 할 수 있어서 다행이라고 생각하고 있다.