Ubuntu+AnacondaのPython環境にstreamlitをインストールして動かなかった場合の対応
WSL2のUbuntuの環境のPythonを使って、streamlitとopenaiのAPIを利用してチャットアプリを作ろうとしておったのですが、streamlitの起動時にエラーがでます。例えばこんな感じ
(chat) tomi@ubuntu:~/projects/chatgpt$ streamlit run temp.py
Traceback (most recent call last):
File "/home/tomi/anaconda3/envs/chat/bin/streamlit", line 7, in
from streamlit.cli import main
ModuleNotFoundError: No module named 'streamlit.cli'
ちなみにインストール手順は conda-forge経由です。
conda install -c openai
conda install -c streamlit
エラーの原因がよく分からず、conda upgrade streamlit などを試したのですが解消せず。ググっても「実行パスが設定されていない」などがヒットしますが、エラーの内容から見てもそんなことはなさそう。
最終的にはstackoverflowにてヒントを発見。
python – No module named 'streamlit.cli’ – Stack Overflow
結局のところ、streamlitの実行スクリプトを書き換えて対応できました。書き換える場所は1行
オリジナル
from streamlit.cli import main
変更後
from streamlit.web.cli import main
そんなこんなで、実行してみるとうまく起動!
(chat) tomi@ubuntu:~/projects/chatgpt$ streamlit run temp.py
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://172.26.92.216:8501
結局のところ、あるバージョンのパッケージの streamlit がバグっているようですね。
いずれ更新がかかるかもしれませんが、対処療法としてはこんな感じ。