코딩코딩코딩

heroku를 이용해서 plotly dash 배포하는 방법 (pycharm) 본문

파이썬/Flask

heroku를 이용해서 plotly dash 배포하는 방법 (pycharm)

hanshow113 2021. 5. 25. 18:02

파이참에서 dash를 만들어서 실행시키면 http://127.0.0.1 이런 식의 주소로 되어 혼자만 볼 수 있어서 이를 배포하는 방법을 정리하고자 합니다.

 

1. heroku 회원가입

2. heroku app 생성

- 로그인 후에 메인 화면에서 우측 상단에 New - Create New app - app name 설정 후 생성

- 여기서 생성한 app name은 이후에 다시 사용되니 알아두시면 좋습니다.

3. heroku CLI 다운로드 (terminal에서 heroku app을 직접 만들고 관리할 수 있게 함)

https://devcenter.heroku.com/articles/heroku-cli

 

The Heroku CLI | Heroku Dev Center

Last updated April 27, 2021 The Heroku Command Line Interface (CLI) makes it easy to create and manage your Heroku apps directly from the terminal. It’s an essential part of using Heroku. Download and install The Heroku CLI requires Git, the popular vers

devcenter.heroku.com

4. pycharm project 관리

4-1. dash를 실행시켰던 .py파일에서 아래의 코드가 있는지 확인하고 추가합니다.

app = dash.Dash(__name__)
server = app.server    # 이 라인을 추가해주어야 함

4-2. 파이참 프로젝트 전체 폴더의 가장 루트 단에 dash_file.py 파일이 있어야 하고 이외의 파일들은 assets, data등의 폴더로 정리하여 보관합니다.

4-3. pycharm terminal에서 아래의 코드를 실행시켜 필요한 라이브러리를 설치합니다.

pip install numpy==1.18.1
pip install pandas==1.0.0
pip install plolty==4.8.0
pip install dash==1.12.0
pip install gunicorn==20.0.4    # heroku에서 app을 실행시키기 위해 필요한 라이브러리

* 저는 위의 라이브러리들을 이미 사용하고 import 해놓은 상태라 print(library_name.__version__)을 통해 버전 확인만 했습니다.

그래서 gunicorn 설치를 안 해서 나중에 애를 좀 먹었으니 위의 라이브러리 버전과 다르더라도 설치는 꼭 해주셔야 합니다.

4-4. .gitignore 파일 생성

dash_file.py 파일이 있는 디렉토리에 .gitignore 파일을 만듭니다. 파이참에서 우클릭-New-File로 생성하면 됩니다.

# 파일명
.gitignore

# 코드 내용
venv
*.pyc
.env
.DS_Store

4-5. Procfile 파일 생성

dash_file.py 파일이 있는 디렉토리에 Procfile을 생성합니다. 위와 동일

#파일명
Procfile

#코드 내용
web: gunicorn dash_file:server

# dash_file은 dash 코드를 작성한 .py 파일의 파일 확장자명을 제거한 파일 이름

4-5. requirements.txt 파일 생성

앞서 설치한 라이브러리를 포함해서 dash를 배포하는 데 필요한 라이브러리명을 저장한 파일

이건 따로 파일을 생성할 필요 없이 pycharm terminal에서 pip freeze > requirements.txt 를 입력하면 자동으로 생성됩니다.

requirements.txt 파일을 열어보면 앞서 설치했던 numpy, pandas, gunicorn등과 기타 라이브러리들이 적혀있습니다.

5. pycharm terminal에  heroku login 입력해서 로그인

- 이후 인터넷 창이 뜨고 로그인 버튼으로 로그인하고 창을 닫으면 됨

 

6. pycharm terminal에서  heroku git:remote -a APPNAME 입력

APPNAME은 2번 과정에서 heroku에서 생성한 app name

 

이후 명령어는 모두 pycharm terminal에서 입력

7. git add .

8. git commit -am "initial launch"

9. git push heroku master  (시간이 조금 걸림)

 

모두 완료한 후에 터미널에 표시된 주소를 클릭해도 되고, 아니면 heroku의 dashboard에서 해당되는 app-name을 클릭한 후에 우측 상단에 Open-app을 클릭해도 됩니다.

 

 

* heroku logs --tail 을 입력하라는 오류 창이 뜰 수도 있는데 이럴 땐 터미널에 heroku logs --tail 을 입력해서 어디에서 오류가 생겼는지 확인하면 됩니다.

- pycharm에서 만든 파일들의 코드에 오타가 있을 수도 있고, 저 같은 경우에는 처음에 pip install gunicorn을 하지 않아서 오류가 생겼었습니다.

 

이외에 정상적으로 pycharm에서 dash가 실행되고, 위의 과정들을 틀리지 않고 실행하셨다면 정상적으로 배포될 것입니다.

 

 

 

** 위의 내용은 파이참에서 작성된 것을 기준으로 한 것이고, 

깃허브를 통해 배포하는 것도 있어서 링크 공유합니다.

https://mjs1995.tistory.com/184

 

[python][plotly] dash와 heroku를 이용한 Dashboard 제작

지도 시각화와 프로젝트 결과물을 토대로 한국지방소멸위험 대시보드를 제작하려고 합니다. korea-dashboard.herokuapp.com/ (대시 보드 로딩하는데 시간이 조금 소요됩니다.) 대시보드 개발 을 위해 다

mjs1995.tistory.com

 

Comments