본문 바로가기
파이썬 데이터분석

파이썬 streamlit ModuleNotFoundError: No module named 'altair.vegalite.v4'

by 데이터스토리 2023. 12. 29.
반응형

파이썬 streamlit 라이브러리 사용 시  다음과 같은 에러가 발생하였습니다.

 

에러메시지

ModuleNotFoundError: No module named 'altair.vegalite.v4'

 

 

에러 상황- ModuleNotFoundError: No module named 'altair.vegalite.v4'

 

작업 순서

  1. 가상환경을 만들고                       --> C:\dev\python\vstreamlit>
  2. streamlit  라이브러리를 설치        --> pip3 install streamlit
  3. 스트림잇 데모페이지 접근을 위해 "streamlit hello" 명령어 실행

 

아래와 같이 에러 발생

(vstreamlit) C:\dev\python\vstreamlit>streamlit hello
Traceback (most recent call last):
  File "c:\users\taegw\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\taegw\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\dev\python\vstreamlit\Scripts\streamlit.exe\__main__.py", line 4, in <module>
  File "C:\dev\python\vstreamlit\lib\site-packages\streamlit\__init__.py", line 70, in <module>
    from streamlit.delta_generator import DeltaGenerator as _DeltaGenerator
  File "C:\dev\python\vstreamlit\lib\site-packages\streamlit\delta_generator.py", line 90, in <module>
    from streamlit.elements.arrow_altair import ArrowAltairMixin
  File "C:\dev\python\vstreamlit\lib\site-packages\streamlit\elements\arrow_altair.py", line 35, in <module>
    from altair.vegalite.v4.api import Chart
ModuleNotFoundError: No module named 'altair.vegalite.v4'

 

 

 

에러 원인

 

 

- " 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 페이지

 

ModuleNotFoundError: No module named ‘altair.vegalite.v4’

can anyone tell me the solution for this ?

discuss.streamlit.io

 

 

 

나의 상황에서의 해결은

 

반응형

 

 

위 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 하여 해결하게 되었습니다.

버전 간의 일치 문제가 파이썬에는 항상 있습니다.

실행이 안될 경우에는 버전을 체크해 볼 필요가 있음을 또 한 번 알게 되는 시간이었습니다.

 

 

 

 

>> 참조

 

스트림잇 토론 사이트

 

Streamlit

A community to discuss Streamlit.

discuss.streamlit.io

 

스트림잇 홈 페이지

 

Streamlit • A faster way to build and share data apps

Streamlit is an open-source Python framework for machine learning and data science teams. Create interactive data apps in minutes.

streamlit.io

 

반응형