質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Streamlit

Streamlitは、Pythonでフロントエンドアプリケーションを構築できるフレームワーク。HTML/CSSの知識が不要で、描画ライブラリで作成したグラフを埋め込むことが可能です。機械学習のレポート作成やデータ分析にも応用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

4713閲覧

python webブラウザで動作するツール作って、社内で使ってもらうために使用するライブラリは?

matsutai

総合スコア53

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Streamlit

Streamlitは、Pythonでフロントエンドアプリケーションを構築できるフレームワーク。HTML/CSSの知識が不要で、描画ライブラリで作成したグラフを埋め込むことが可能です。機械学習のレポート作成やデータ分析にも応用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2022/12/14 14:12

前提

webアプリに関して初心者になります。
以下文章のみで申し訳ありませんが、どなたか教えていただきたいです。

pythonのファイルを、pyinstallerで実行ファイルのツール化をして、python環境のない方に社内で使ってもらっています。
ツールの内容は、pysimpleguiで作った、UI画面から、エクセルデータを読み込んで、選択項目に関して、データの並び替えをpandasで行って、
openpyxlでエクセルに出力する簡単なものです。

より使いやすくするために、社内のネット環境で、ブラウザ上で、上記のツールを同じようなUI操作で、
動作するwebアプリ的なものにできないかと思いまして、良いライブラリを探しております。

実現したいこと

ネットで調べると、Flask 等があるのですが、CSS、HTML等の知識が必要なようでして、もう少し簡単にと思っております。
Streamlit が比較的簡単にできそうな雰囲気なのですが、Streamlitを使った場合に、python環境が無い社内のメンバに、
ブラウザ上で動かせるツールを公開することはできるのでしょうか?
(調べた範囲では、使う人が、ブラウザ表示をするのに、pyファイルを実行するためのpython環境が必要そうでしたので。)
また、他に上記目的が適したライブラリがあるようでしたら、教えていただけないでしょうか? 

このような技術に関して、ほとんど知識がないために、不適切な質問をしているようでしたら申し訳ありません。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

PondVillege

2022/12/14 21:02 編集

> Streamlitを使った場合に、python環境が無い社内のメンバに、ブラウザ上で動かせるツールを公開することはできるのでしょうか? 可能です. > 調べた範囲では、使う人が、ブラウザ表示をするのに、pyファイルを実行するためのpython環境が必要そうでした ここは知識不足から来る誤解です.質問者がStreamlitで記述した.pyファイルを実行したPC(この時点でWebサーバ扱い)のIPアドレスに,(ネットの構成&ファイアウォール次第ですが)他のPCからアクセスできるはずです.これはFlaskだろうがStreamlitだろうが変わらないWebの基礎部分です. pyinstallerで実行ファイルのツール化をした場合と比較したデメリットとして,(アプリが使われそうな時間帯は)常に起動したPCが必要である点が挙げられます.逆にメリットとしては,システム変更をしても相手側に実行ファイルを入れ替えてもらう作業が不要であることです.その点で言えば,開発環境と公開アプリ環境は切り分ける意識も必要になると思います(Webのめんどくさいところです)
matsutai

2022/12/15 03:58

丁寧にご説明ありがとうございます。 やりたいことは、できそうなことは理解できました。自分でもう少し調べてみます。 ちなみにですが、stremalit がおすすめなのでしょうか? 知っていたらで構いませんが、初心者向けに良いライブラリがございましたら、教えていただけますでしょうか。 よろしくお願いします。
PondVillege

2022/12/15 06:39

データを投げる→加工して返す 程度のWebアプリを作るなら,StreamlitもFlaskもDjangoも大差ないですね.HTML/CSSの学習コストを避けて通りかつ大規模サービス化しない見通しならStreamlitで間違いないです
FiroProchainezo

2022/12/15 10:13

回答はps_aux_grepさんが書いてくれているので、意見だけ書きます。 個人的にはFlask押しなので、ツールが便利だということになったら、色々要望が出てきて、変更することになると思いますので、拡張性が高いのがわかりきっているFlaskをお勧めします。 が、ツールやらアプリやらを検討する上で最も重要なのは運用面だと思っているので、何で作っても良いと思います。 Streamlitのドキュメントを見るとギャラリーにテンプレートが並んでいるので、それを見て機能が十分だと思えば使えば良いんじゃないでしょうか。 とはいっても、PyInstallerを使って各自のPCで動作させるアプリと、Webアプリでは動く場所などが異なる関係で、概念が変わりますので、その辺も充分考慮する必要があると思います。 単に今のアプリをWebにしたら動くかと言うと、大抵動かないと思いますので、その部分は検討する必要があるはずです。 簡単に言うと、Webアプリはサーバで動作し、デスクトップアプリはPC上で動作します。 Webアプリは自分のPCのCドライブのファイルを勝手に読み込んで処理をして保存したりできませんが、デスクトップアプリなら可能です。 Webアプリは複数同時アクセスが普通ですが、デスクトップアプリはだいたい一人で使うので同時に同じ機能が動くことはありません。 Webの場合、txtファイルやExcelでデータ保存することは大抵行わず、データは大抵DBに入れますので、データの保存場所なども考慮する必要があります。(入力データを加工して結果をExcel BookでDLさせるとかは可能です) また、データがサーバに送られる関係で、余計な人に見られてはいけないデータが見られないかなども考慮が必要になると思います。 Streamlitにこの辺の柔軟性があるのかは不明ですが、Gitを見ると2歳くらいのOSSなので、検索しても情報がなかなか出てこないことは覚悟する必要があるはずです。 運用面では、以下の様なものを考える必要があります。 ・動作させるPCをどうするか  Webサーバということなんで、24時間稼働になると思います。  matsutaiさんの作業PCって訳にはいきませんよね。  たぶん社内にサーバ的なものをたてることになると思いますが、そのPCはどうやって購入(レンタル)するのか。  そもそもお金が出るのか。  どこに置くのか。サーバルームですかね? ・誰が管理するのか  会社ならIT部門があるはずなので、そちらの人がやってくれるのか、その場合matsutaiさんが勝手にアクセスできなくなるはずなので、どのようなルールで運用するのか。  matsutaiさんが一人で管理だと有給休暇の時に対応できないので、複数人の管理者が必要になるので、その人選をどうするか、そんな保守費を出してくれるのか。 ・マニュアル整備をどうするか  使う人を自分で制御できなくなる(アプリを配布するのはexeを渡すみたいな感じですが、WebはURLおしえられたらアクセスできてしまう)ので、問い合わせが増える可能性があります。  ブラウザによって動作が異なるかもしれませんので、推奨ブラウザを設定したり、アクセス先のIPやURLを書いたり、問い合わせ窓口を設定したり、色々面倒そうな作業が増える可能性があります。  マニュアルではない設計資料を残さないと後々自分が困るかもしれません。 ネガティブな意見を沢山書きましたが、Webにしないでデスクトップアプリのまま進化させた方が便利度が高いかもしれません。 会社の規模によってはWeb化もありかもしれませんが、WebやるならHTML/CSS/JavaScriptは最低限身につけた方が後々楽なので、そこからやった方が自分を苦しめずにすみそうです。
matsutai

2022/12/15 13:22

ps_aux_grep さん、FiroProchainezo さん。 大変丁寧な回答ありがとうございます。 参考にさせていただきます。
guest

回答1

0

ベストアンサー

ローカルネットワーク内でStreamlitを使ったWebサービスを公開する手順は非常に簡単で

  • 開発者がWebサービスを立ち上げる
    • Streamlitを実行した際に出てくる標準出力に書かれてあるNetwork URLを控えておく
  • サービスを使って欲しい人に,先ほど控えたNetwork URLにWebブラウザでアクセスしてもらう

だけです.そのため,環境構築の必要があるPCはWebサービスを立ち上げるPCのみです.

投稿2022/12/15 07:38

PondVillege

総合スコア1579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matsutai

2022/12/15 13:23

ありがとうございます。 自分で試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問