Cloud9上で動かしているFlaskのプレビューが「Oops No application seems to be running here!」と表示される場合の対処法

記事タイトルとURLをコピーする

技術4課の前田(青)です。

ある検証の前準備としてCloud9上でFlaskアプリケーションを動かしたのですが、プレビューすることが出来ませんでした。 Flaskを初めて触ったこともあり少しハマったので対処方法を記載します。

対象

Flask初心者の方

事象

①フォルダ構成とFlaskアプリケーションのソースコードの内容は下記画像のような感じです。「app.py」を実行すると「Hello World」が表示されます。


②下記のコマンドを実行して、Flaskアプリケーションを動かします。

set FLASK_APP={Flaskソースコードの親フォルダまでのパス}/app.py
flask run


③実行結果は下記のようになり、Flaskアプリケーションは問題なく動いているようです。


④メニューバーのPreview > Preview Running Applicationを押下して、プレビューを表示します。


⑤「Oops No application seems to be running here!」と表示されてしまい、アプリケーション実行結果が表示できません。

原因

Cloud9でpreviewするアプリケーションのポートは8080、8081、または 8082が使用できる必要があります。(参考:AWS Cloud9統合開発環境 (IDE)で実行中のアプリケーションをプレビュー - AWS Cloud9

「flask run」をオプションなしで実行する場合、デフォルトではport 5000で実行されるのでCloud9ではプレビュー出来ません。

解決策1

①下記コマンドのように「flask run」をport 8080を指定して実行します。

flask run -p 8080


②実行結果は下記画像のようになり、Flaskアプリケーションがport 8080で実行されます。


③プレビューを表示することが出来、画面に「Hello World」と表示されました!

解決策2

①app.pyに9行目、10行目のコードを追加します。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello world'

if __name__ == '__main__':
    app.run(port=8080)


②下記コマンドを実行します。

python {Flaskソースコードの親フォルダまでのパス}/app.py


③実行結果は下記画像のようになり、Flaskアプリケーションがport 8080で実行されます。


④プレビューを表示することが出来、画面に「Hello World」と表示されました!

感想

さっさと公式ドキュメントを見ろという話だったのですが、結構ハマってしまったので今回筆をとりました。 同じようにハマっている方の一助となれば幸いです。

前田 青秀(執筆記事の一覧)

2023年2月入社 技術4課改めCR課

AWS資格12冠

ジムに通い始めましたが、なるべく楽してマッチョになりたい…