streamlitのインストールで詰まった話
初めに
私はPython初心者であるため、もしかすると初歩的な質問や内容になることがあるかもしれませんが、ご容赦いただければ幸いです。
Pythonで簡単にWebアプリケーションの開発がしたいと思っていた矢先、便利そうなフレームワーク streamlit を発見した。早速、自分の環境で動かしてみようと思いインストールしたが詰まってしまった。原因と対象人ついて備忘録のために書いておこうと思う。
streamlitのインストール
pip install streamlit
エラー文
Collecting streamlit
<略>
ERROR: Failed building wheel for pyarrow
Failed to build pyarrow
ERROR: Could not build wheels for pyarrow which use PEP 517 and cannot be installed directly
対処1
chatGPTにエラー丸投げ -> chatGPTの指示に従う
chatGPT様の提案
このエラーは、pyarrowパッケージをインストールする際に必要なビルドツールである「cmake」がインストールされていないために発生しています。pyarrowはビルドの過程でcmakeを使用するため、これがないとエラーが出ます。
解決策
cmakeのインストール:
MacOSでHomebrewを使用している場合は、次のコマンドでcmakeをインストールできます。
bash
コードをコピーする
brew install cmake
もしAnacondaを使用している場合は、以下のコマンドでcmakeをインストールできます。
bash
コードをコピーする
conda install -c conda-forge cmake
再度インストールを試みる: cmakeがインストールできたら、以下のコマンドで再度pyarrowをインストールしてください。
bash
コードをコピーする
pip install pyarrow
これで解決できるはずです。もし他にもエラーが発生した場合は、お知らせください。
→ 解決できず
対処2
pipのバージョンが違う説
「pip インストールできないとき」とブラウザで検索をして他の対処法を調べた。すると、pipのバージョンが違う場合にフレームワークをインストールできないことがあるらしい。そこでpipのバージョンを最新にしてみた。
実行したコード
pip install -U pip
→ 上手く行った?
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
spyder 5.1.5 requires pyqt5<5.13, which is not installed.
spyder 5.1.5 requires pyqtwebengine<5.13, which is not installed.
Successfully installed altair-5.4.1 blinker-1.9.0 gitdb-4.0.11 gitpython-3.1.43 markdown-it-py-3.0.0 mdurl-0.1.2 narwhals-1.13.3 protobuf-5.28.3 pyarrow-18.0.0 pydeck-0.9.1 pygments-2.18.0 rich-13.9.4 smmap-5.0.1 streamlit-1.40.1 tenacity-9.0.0 typing-extensions-4.12.2
エラーがなんか出ているが、streamlitのインストールはうまく行っている模様。
新たな問題発生!
vscodeでいざstreamlitを使ってみようとするも、エラーが出てくる。
エラーの概要はなんか、Pythonのバージョンが古いって感じのエラーだった
そこでPython3のバージョンをアップデートを行った。
brew upgrade python3
問題解決!!!
上記、アップデートで無事streamlitが使えるようになりました
学び
ChatGPTを信用しすぎないこと
ChatGPTに聞いたことをやる → うまくいかない → 諦める
ではなく、
ChatGPTに聞いたことをやる → うまくいかない → ChatGPTはバカだった → 自力で調べる(公式ドキュメントやQiitaなど)
くらいのマインドで対処したほうがいいかも。
ChatGPTに聞いて、回答が的を得ていない感じだったら自力で調べたほうが効率いい気がする。