
Streamlit은 간단하게 구현하고 배포할 수 있는 웹 대시보드 라이브러리입니다.
부트캠프에서 데이터 분석 프로젝트를 짧게 진행했습니다. 상권 분석 데이터를 기반으로, 창업 위치와 업종을 추천하는 웹 대시보드를 만들었습니다.
발표할 때 학생들이 바로 웹에 접근할 수 있도록 Streamlit Cloud로 빠르게 배포했는데, import 에러를 발견했습니다. 다른 라이브러리는 잘 import되지만, 유독 mysqlclient만 에러가 발생했습니다.
mysqlclient는 C 기반의 클라이언트를 파이썬 인터페이스로 확장한 라이브러리입니다. 설치할 때 C 언어의 소스를 빌드해야 합니다.
그러나 Streamlit Cloud는 파이썬 환경이고, OS 레벨은 막혀있습니다. 파이썬 환경인 만큼 C 컴파일러가 없으니(설치도 불가능), C 기반인 mysqlclient는 설치가 안 된 것이죠.
C 기반의 라이브러리가 안 된다면 순수 Python 라이브러리를 사용하면 됩니다:
mysql-connector-pythonPyMySQL mysqlclient 뿐만 아니라, mysql 도 설치가 안 됩니다. mysql 라이브러리는 mysqlclient 라이브러리에 의존하기 때문이죠.
지금까지 배포는 Docker로 이미지를 만들고 인스턴스에서 실행하는 방식으로 진행했습니다. docker 이미지가 얼마나 소중한 기능인지 삽질 2시간으로 확실히 느꼈습니다...