Hub documentation

Spaces의 Dash

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Spaces의 Dash

Dash Open Source를 사용하면 순수 Python으로 노트북에서 데이터 앱을 만들 수 있으며, JavaScript가 필요하지 않습니다.

오픈 소스를 사용하여 샘플 앱을 구축하여 Dash에 익숙해지세요. Dash 앱이 부서나 회사 전체에서 사용될 준비가 되면 Dash Enterprise로 확장하세요. 또는 처음부터 Dash Enterprise로 프로젝트를 시작하여 개발 생산성 향상과 Plotly 팀의 직접적인 지원을 활용하세요.

Spaces에서 Dash 배포

Spaces에서 Dash를 시작하려면 아래 버튼을 클릭하세요:

이 과정을 통해 Plotly의 Dash Docker 템플릿을 사용하여 Space가 빌드되기 시작합니다. 성공적으로 완료되면 Dash template app과 유사한 애플리케이션을 확인할 수 있습니다.

Dash 앱 사용자 정의

Dash를 이용해 본 적이 없다면 Dash 20분 튜토리얼로 시작하는 것을 권장합니다.

Dash Space를 생성하면 시작에 도움이 되는 몇 가지 주요 파일을 받게 됩니다:

1. app.py

이 파일은 프로젝트의 핵심 로직을 정의하는 메인 앱 파일입니다. Dash 앱은 모듈로 구성되는 경우가 많으며, layout.py와 같은 다른 파일에 레이아웃, 콜백, 데이터를 선택적으로 분리할 수 있습니다.

app.py 안에는 다음이 표시됩니다:

  1. from dash import Dash, html 앱을 정의하기 위해 Dash 객체를 가져오고, 프로젝트를 조립하는 데 필요한 빌딩 블록을 제공하는 html 라이브러리를 가져옵니다.

  2. app = Dash() 여기서 앱을 정의합니다. Layout, server, callbacks는 app 객체에 바인딩됩니다.

  3. server = app.server 여기서 프로덕션 환경에서 앱을 실행하는 데 사용되는 server 변수를 정의합니다.

  4. app.layout = 스타터 앱 레이아웃은 Dash 컴포넌트의 목록, 개별 Dash 컴포넌트, 또는 이 둘 중 하나를 반환하는 함수로 정의됩니다.

    app.layout는 프로젝트의 콜백 및 기타 로직에 의해 단일 페이지 애플리케이션으로 업데이트되는 초기 레이아웃입니다.

  5. if __name__ == '__main__': app.run(debug=True) python app.py로 로컬에서 프로젝트를 실행하는 경우, app.run(...)가 실행되어 핫 리로딩, 콜백 그래프 등 다양한 기능을 갖춘 개발 서버가 시작됩니다.

    프로덕션 환경에서는 프로덕션급 서버인 gunicorn을 권장합니다. gunicorn으로 프로젝트를 실행할 때 디버그 기능이 활성화되지 않으므로 이 줄은 절대 실행되지 않습니다.

2. Dockerfile

Dash 앱의 Dockerfile은 Dash의 시스템 의존성이 적기 때문에 최소한의 구성으로 작성됩니다. 주요 요구 사항은 다음과 같습니다:

  • requirements.txt에 나열된 종속성을 설치합니다(uv 사용)
  • 보안을 위해 루트가 아닌 사용자를 생성합니다
  • gunicorn app:server --workers 4를 사용하여 gunicorn로 앱을 실행합니다.

애플리케이션에 추가적인 시스템 종속성, 권한 또는 기타 CLI 플래그가 필요한 경우 이 파일을 수정해야 할 수 있습니다.

3. requirements.txt

Space는 requirements.txt 파일에 나열된 의존성을 자동으로 설치합니다. 이 파일에는 최소한 dash와 gunicorn를 포함해야 합니다. 앱에 필요한 기타 패키지도 추가해야 합니다.

Dash Space 템플릿은 필요에 따라 확장할 수 있는 기본 설정을 제공합니다.

추가 리소스 및 지원

문제 해결

문제가 발생하면:

  1. python app.py를 사용하여 노트북이 로컬에서 앱 모드로 실행되는지 확인하세요.
  2. requirements.txt에 필요한 모든 패키지가 나열되어 있는지 확인하세요.
  3. 포트 구성이 일치하는지 확인하세요(7860은 Spaces의 기본값입니다)
  4. Space 로그에서 Python 오류가 있는지 확인하세요

추가 도움이 필요하시면 Plotly Community Forums를 방문하시거나 이슈를 생성하세요.

Update on GitHub