LoginSignup
0
1

Google Colabでstreamlitを動かす方法

Posted at

本日のお悩み

Google Colabでstreamlitアプリを動かしたい

本日の処方箋

ngrokを使用してurlを取得して動かす

以下手順を記載

  • ngrokのアカウントを作成し設定する

    • ngrokへアクセスしgithub経由でアカウントを作成しAuthtokenを取得

    • ngrokのHPはこちら
      ngrokで、接続するために必要な「Authtoken」を設定。
      以下のコードの、
      !ngrok authtoken YourAuthtoken
      における
      YourAuthtokenの箇所を、自分のAuthtokenに置き換える。

    • !ngrok authtoken YourAuthtoken
      

  • アプリの起動

    • streamlitのrunコマンドでアプリを起動
    • # (&>dev/null&)で出力を表示させず、バックグラウンドで実行する
      !streamlit run app.py &>/dev/null&
      

  • URLの取得

    • from pyngrok import ngrok
      
      # プロセスの終了
      ngrok.kill()
      # 接続
      url = ngrok.connect("8501").public_url
      
    • ngrokのプロセスを終了した上で、新たにポートを指定して接続。接続するとurlを取得。(httpが帰ってくるため後ほどの下記の関数でhttpsに変換)
      ngrokの無料プランだと同時に1つのプロセスしか動かせないため、接続によるエラーが発生した場合はランタイムセッションの管理で不要なColabのプロセスを終了させる。

  • 動作確認

    • urlのhttpの部分をhttpsに変換する関数
    • def convert_http_to_https(url):
          # urlの先頭がhttpだったらhttpsに変更
          if url.startswith("http://"):
              # 1は置換する回数(1を指定することで、元のURL内で最初に見つかった "http://" の部分だけを "https://" に置き換え、他の "http://" は変更されない。)
              url = url.replace("http://", "https://", 1) 
          return url
      

  • 最後に変換したurlを確認し、動作を確認する

    • print(convert_http_to_https(url))
      
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1