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 がバグっているようですね。
いずれ更新がかかるかもしれませんが、対処療法としてはこんな感じ。