Python

Streamlitの導入でつまづいたこと

Pythonでできることの幅を広げたく、Udemyを物色していたところ、面白そうな講座を発見したので購入してみたのですが、見事につまづいたので備忘として対処方法等をまとめました。

今回購入したのは、以下の講座になります。

爆速で5つのPython Webアプリを開発

どんな講座

講座のイントロダクションには以下の様に記載されています。

プログラミング初学者必見!話題のStreamlitを用いて、最短最速でアプリケーションを公開するまでの流れをわかりやすくお伝えします。Pythonの基礎は終えたけど、Webアプリとかも作ってみたいと考えている方におすすめの講座です。

出典:Udemy

まだ、受講を開始したばかりですが、ざっくりと要約すると「Streamlitを使えば、HTMLやCSSを触らず、PythonだけでWebアプリケーションが作れますよ。」という講座です。

※受講を進める課程で評価が変わってくるかも知れません。

Streamlitとは

では、そもそもStreamlitとは何でしょうか。

まずは公式サイトを見てみましょう。(英語のサイトなので、適宜翻訳機能を使ってください。)

直訳すると「データアプリを構築して共有するための最速の方法」であると言っています。

Streamlitとは、上記の目的に即した機能を提供するパッケージであることがわかりました。学習を進める課程で詳細は学んでいきたいと思います。

Streamlitの導入に当たって

ここからが、今回の本題です。

結論から言うと、講座開始16分のところで躓きました。

conda install streamlit

これだけでstreamlitが導入できるはずでしたが、下記のように出力され、インストールすることができなかったことが原因です。

conda install streamlit

[出力結果]
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.

PackagesNotFoundError: The following packages are not available from current channels:

  - streamlit

Current channels:

  - https://repo.anaconda.com/pkgs/main/win-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/r/win-64
  - https://repo.anaconda.com/pkgs/r/noarch
  - https://repo.anaconda.com/pkgs/msys2/win-64
  - https://repo.anaconda.com/pkgs/msys2/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.

 

詳細を調べてみると、「私のconda環境のchannelではstreamlitはインストールできませんよ。」ということらしいです。私はこれまでUdemyを中心に独学でPythonの学習を進めてきましたがchannelに起因するエラーは初めてだったので、適宜調べながら、以下の手順で事象を解消しました。

channelとは

condaでインストール、アップグレードなどを行う際に検索するリポジトリのことです。

今回Streamlitがダウンロードできなかったのは、私が検索したリポジトリにStreamlitが含まれていなかったことが原因のようです。

channelの追加

調べてみるとchannelは複数あり、任意に追加が可能なようです。

では、どのchannelを追加すれば、Streamlitが手に入るのでしょうか。

Googleで検索したところ、「conda-forge」というchannelでstreamlitは公開されているようなので、私のconda環境のchannelにconda-forgeを追加します。

conda config --add channels conda-forge
上記コマンドの場合、デフォルトのchannelが変更され、今後、優先的にconda-forgeからインストール、アップグレードが検索されるようになります。デフォルトのchannelの変更を避けたい方は以下のコマンドを使用してください。

conda config –append channels conda-forge

上記コマンドを入力しましたが、何も出力されません。本当にchannelが追加されているか確認するため、以下のコマンドを入力します。

conda config --show channels

[出力結果]
channels:
  - conda-forge
  - defaults

「conda-forge」が追加されていることが確認できたので、「conda install streamlit」を改めて入力します。

すると、以下の様に表示され、Streamlitがようやくインストールできました。

conda install streamlit

[出力結果]
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done

(中略)

done

まとめ

Python初学者が色々と手を出し始めると、「PackagesNotFoundError: The following packages are not available from current channels:~」と表示される日が来ると思います。

そんなときは、自分が欲しいパッケージが自分の環境でアクセス可能なchannelに含まれているか確認し、必要に応じてchannelを追加してみてください。

本ブログを読んでStreamlitに興味を持たれた方は、是非下記のリンクからUdemyの講座にアクセスしてみてください。

爆速で5つのPython Webアプリを開発

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA