Pythonでできることの幅を広げたく、Udemyを物色していたところ、面白そうな講座を発見したので購入してみたのですが、見事につまづいたので備忘として対処方法等をまとめました。
今回購入したのは、以下の講座になります。
どんな講座
講座のイントロダクションには以下の様に記載されています。
プログラミング初学者必見!話題の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 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の講座にアクセスしてみてください。