파이썬 streamlit 라이브러리 사용 시 다음과 같은 에러가 발생하였습니다.
에러메시지
ModuleNotFoundError: No module named 'altair.vegalite.v4'
에러 상황- ModuleNotFoundError: No module named 'altair.vegalite.v4'
작업 순서
- 가상환경을 만들고 --> C:\dev\python\vstreamlit>
- streamlit 라이브러리를 설치 --> pip3 install streamlit
- 스트림잇 데모페이지 접근을 위해 "streamlit hello" 명령어 실행
아래와 같이 에러 발생
에러 원인
- " altair " 라이브러리 업그레이드 간 버그로 해결 중이라고 함 (아래 메시지 참조)
Streamlit의 메시지
Hey all ,
Wanted to hop in and say that @Franky1 is right and there were breaking changes in Altair 5 for Community Cloud.
In the short term, the best solution would be to:Either: pin altair < 5 or upgrade streamlit to >=1.20.0
In the medium term, we’re building in support for Altair 5. Stay tuned!
제시된 해결책
첫 번째, altair 라이브러리를 5 버전 아래로 downgrade 하기
pip install "altair<5"
두 번째, streamlit 라이브러리를 1.23.0 이상 버전으로 업그레이드하기
이는 altair v5. 을 지원하기 위함
pip install "streamlit>=1.23.0"
>> 해결책이 담긴 Stremlit 페이지
나의 상황에서의 해결은
위 2번에 있는 "pip install "streamlit>=1.23.0""을 하였으나, 해결이 되지 않았음
에러 메시지를 확인해 보니 파이썬 버전에 차이가 있었습니다. "python --version" 명령어로 확인하니 파이썬 버전이 3.9.7인데, 그 버전은 안된다고 빨간 글씨로 되어 있었죠
(vstreamlit) C:\dev\python\vstreamlit>pip freeze
altair==5.2.0
...
streamlit==1.12.0
(vstreamlit) C:\dev\python\vstreamlit>python --version
Python 3.9.7
ERROR: Ignored the following versions that require a different python version: 0.55.2 Requires-Python <3.5; 1.12.1 Requires-Python >=3.7, !=3.9.7; 1.12.1rc1 Requires-Python >=3.7, !=3.9.7;
그래서, 첫 번째 방법인 ' pip install "altair<5" ' 사용하여 altair 라이브러리를 다운그레이드하였습니다.
DownGrade 후 "streamlit hello " 실행하였습니다.
그러니 작동이 되면서 추가 정보를 요청하는 화면이 나왔습니다. 정보를 넣지는 않고 Enter를 눌렀습니다.
streamlit hello 가 실행된 웹화면이 나타났습니다.
정리하면
"altair" 라이브러리의 문제로 인해서 "altair<5" 로 Downgrade 하여 해결하게 되었습니다.
버전 간의 일치 문제가 파이썬에는 항상 있습니다.
실행이 안될 경우에는 버전을 체크해 볼 필요가 있음을 또 한 번 알게 되는 시간이었습니다.
>> 참조
스트림잇 토론 사이트
스트림잇 홈 페이지
'파이썬 데이터분석' 카테고리의 다른 글
파이썬 - numpy.argmax 함수 (1) | 2024.02.13 |
---|---|
파이썬 Streamlit 의 cheat sheet - Display Data, Connect to data sources (2) | 2024.01.02 |
tips.corr() ValueError: could not convert string to float: 'No' (1) | 2023.12.03 |
파이썬 DataFrame.pivot() takes 1 positional argument but 4 were given 에러 (0) | 2023.11.30 |
파이썬 Tip - 함수 도움말 부르기 코멘트 처리 (1) | 2023.11.26 |