🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Flask

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

Python 3.x

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4430閲覧

Flaskをターミナルで実行するときのエラー

退会済みユーザー

退会済みユーザー

総合スコア0

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Flask

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

Python 3.x

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

1クリップ

投稿2019/10/13 05:04

編集2019/10/13 06:23

前提・実現したいこと

Flaskをターミナルで実行しようとしています。

発生している問題・エラーメッセージ

フォルダflask_setup_example配下で以下のコマンドを打ったのですが、エラーメッセージが出て起動させることができません。

bash

1$ export FLASK_APP=flaskr 2$ export FLASK_ENV=development 3$ flask run

エラー内容のフォルダ名も拡張子も確認しましたが、他に解決法がわからず困っています。

Usage: flask run [OPTIONS] Error: The file/path provided (flaskr) does not appear to exist. Please verify the path is correct. If app is not on PYTHONPATH, ensure the extension is .py

該当のソースコード

flask_setup_example/flaskr/__init__.pyというパスで以下のプログラムを置いています。

python

1from flask import Flask 2 3def create_app(test_config=None): 4 app = Flask(__name__) 5 6 return app

補足情報(FW/ツールのバージョンなど)

python Python 3.6.0 :: Anaconda 4.3.0
macOS Catalina バージョン10.15
ターミナル バージョン2.10

退会済みユーザー👍を押しています

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

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

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

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

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

nico25

2019/10/13 05:48

flask run を実行されたのは flask_setup_example/ ディレクトリ直下ですか?
退会済みユーザー

退会済みユーザー

2019/10/13 05:50

はい。flask_setup_example/ディレクトリ直下で$ lsでflaskrが表示されます。
nico25

2019/10/13 06:15 編集

Flask のバージョンはどうでしょうか? $ pip list | grep Flask アップグレードすると直るという記事を見かけました。アップグレードしてもいいのならの話なのですが... > The error message is from flask version 0.x when running with environment variables, > just upgrade your flask to version 1.x. > $ pip install -U flask > https://stackoverflow.com/questions/41913345/flask-error-the-file-path-provided-does-not-appear-to-exist-although-the-file
退会済みユーザー

退会済みユーザー

2019/10/13 06:20

アップグレードして以下のようにしましたが、別のエラーに変わりました。 $ pip list | grep Flask(アップグレード前) Flask 0.12 Flask-Cors 3.0.2 $ pip list | grep Flask(アップグレード後) Flask 1.1.1 Flask-Cors 3.0.2
退会済みユーザー

退会済みユーザー

2019/10/13 06:21

エラー文 $ flask run * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off Usage: flask run [OPTIONS] Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.
nico25

2019/10/13 06:38

エラーに環境変数 "FLASK_APP" が無いと言われています。 > You did not provide the "FLASK_APP" environment variable 再度、 $ FLASK_APP=flaskr を実行の上、 $ flask run してみてください。
退会済みユーザー

退会済みユーザー

2019/10/13 10:40

$ FLASK_APP=flaskr $ flask run としましたが、同じWARNINGとErrorが表示されました。 Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.
nico25

2019/10/13 11:06

WARNING は、いまは問題ありません。このエラーを避けるには gunicorn または uWSGI または mod_wsgi などの WSGI に対応したウェブサーバを使う必要があります。 https://www.youtube.com/watch?v=S-InxJA5NOg これは製品環境で flask run を使わないでくださいね。と言われています。flask は開発するために内部にウェブサーバを持っています。あくまでも "開発" 用なので "製品" すなわち本番環境では使わないでくださいと言われています。 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
nico25

2019/10/13 11:10

エラー文を翻訳すると、以下のようになります。 エラー: Flask アプリケーションの場所を特定できませんでした。FLASK_APP 環境変数が提供されていませんでした、また "wsgi.py" または "app.py" は現在のディレクトリに見つかりませんでした。 Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory. flask run コマンドは「FLASK_APP 環境変数が提供されてい」なかった場合、見つけられなかった場合、次にカレントディレクトリに「wsgi.py」または「app.py」が無いか探しています。つまり後半のエラー文は、「wsgi.py」または「app.py」も見つけられなかったと言っています。
退会済みユーザー

退会済みユーザー

2019/10/13 11:24

翻訳いただきありがとうございます。その理解でしたが、「FLASK_APP 環境変数が提供されていない」という点で確かにflaskrフォルダは存在しており、FLASK_APP=flaskrコマンドも通っているので原因が全くわからない状態です。
nico25

2019/10/13 12:41

お力添えできず、申し訳ないです。 ① 調べて見たこと もしかして Anaconda を使うと環境変数が別になるのかな、 と思って確認もしてみたのですが、そのような記事は見つかりませんでした。 そのため症状としては環境特有で、 力技で色々と再インストールしていけば直るのかなと見ています。 以下、やってみるべきという訳では無いのですが、自分ならこれをするというのを書きます。 ② やって見たいこと os.environ に環境変数 FLASK_APP が入っているかを調べたいです。 もしここで os.environ の中に問題なく FLASK_APP があれば... Anaconda や OS の問題ではなく Python のパッケージに問題があると見て、 Flask だけではなく Flask に関連するパッケージを全て再インストールしてみるという手順を踏みます。 breakpoint を仕掛ける場所は、どこでもいいのですが、 候補としては以下2点かなと思います。 1) そのため、ちゃんとやるなら、ここか... ```python class ScriptInfo(object): def __init__(self, app_import_path=None, create_app=None, set_debug_flag=True): #: Optionally the import path for the Flask application. self.app_import_path = app_import_path or os.environ.get("FLASK_APP") ``` https://github.com/pallets/flask/blob/c478e5d52f4985a9a58f1ac1d229b47e9f6fe24f/src/flask/cli.py#L358 flask run コマンドは、ここで os.environ.get("FLASK_APP") を使い環境変数を取得しています。 2) あるいは簡単にやるなら、flask コマンドは Python のスクリプトなので which コマンドで場所を特定して、そこに breakpoint を仕掛けます。 $ which flask $ vim [which flask コマンドの結果] 中はこんな感じのスクリプトです。 ``` #!/Users/user/venv/bin/python3 # -*- coding: utf-8 -*- import re import sys from flask.cli import main if __name__ == '__main__': breakpoint() sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) sys.exit(main()) ``` 自分の環境では 1), 2) の両方で os.environ から環境変数 FLASK_APP が取得できました。 ③ やるかもしれないこと もし os.environ で FLASK_APP 環境変数が取得できていなければ... Anaconda を再インストールするという手順を自分なら踏みます。
guest

回答1

0

ベストアンサー

同じエラーに直面した物です。

私は、ターミナルを再起動させることで解決致しました。
原因はわかりません。

すでに解決しているとは思いますが、
この記事に解決案がなかったので回答させていただきます。

投稿2020/10/05 15:21

ryutaro-kimura

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問