Ошибка Flask: указанный файл/путь не существует, хотя файл существует

Я использую export FLASK_APP=flask_app, а затем flask run, но получаю сообщение об ошибке:

Ошибка: Предоставленный файл/путь (flask_app) не существует. Пожалуйста, проверьте правильность пути. Если приложение не находится в PYTHONPATH, убедитесь, что расширение .py

Однако файл действительно существует и даже находится в текущем рабочем каталоге. Использование полного пути к файлу также не работает.


person PDiracDelta    schedule 28.01.2017    source источник


Ответы (9)


Эта ситуация возникает, когда у вас есть ImportError, который не передается на ваш терминал. Проверьте все файлы на наличие неверных операторов импорта, исправьте их, и ошибка должна исчезнуть.

РЕДАКТИРОВАТЬ 2017-04-02: @Michael указал, что моя ссылка, помещенная под тегом «СТАРОЕ СООБЩЕНИЕ, ЧАСТЬ 2», неверна. Я не знаю, как появилась эта ошибка, но я нашел очень недавний пост на Flask Github, где они ссылаются на коммит, который должен был решить проблему 1 декабря. 30th of 2016. Вероятно, в то время у меня действительно была старая версия flask.

СТАРОЕ СООБЩЕНИЕ, ЧАСТЬ 2. Эта проблема обсуждается на Flask Github, хотя я не уверен, что до того, когда и даже была ли она действительно исправлена, поскольку я все еще сталкиваюсь с ошибкой сегодня, хотя я загрузил Flask после слияния исправления, описанного на этой странице (12 августа 2016 г.).

person PDiracDelta    schedule 28.01.2017
comment
сообщение неправильное, так как оно сбивает с толку, flask должен позаботиться об этом сообщении, спасибо @PDiracDelta - person Tamaghna Banerjee; 05.03.2017
comment
У меня все еще есть эта проблема в Flask 0.12, последней найденной точке. Всякий раз, когда я пропускаю оператор import, я вижу эту вводящую в заблуждение ошибку. Однако билет Github, на который вы ссылаетесь, похоже, относится к другой ошибке. Вы имели в виду ссылку где-то еще? - person Michael Scheper; 01.04.2017
comment
Спасибо @Michael за то, что заметил мою ошибку! Обновил ответ. - person PDiracDelta; 02.04.2017
comment
Ах, да, эта ссылка имеет больше смысла, и похоже, что проблема была исправлена ​​​​в основной ветке. Надеюсь, скоро выйдет Flask 0.13. Спасибо! - person Michael Scheper; 06.04.2017
comment
Может быть полезно запустить python manage.py, чтобы увидеть ошибки импорта. - person beyondfloatingpoint; 26.07.2018

Сообщение об ошибке из фляги версии 0.x при работе с переменными среды, просто обновите флягу до версии 1.x.

pip install -U flask
person Chayapol    schedule 03.05.2018

Я вижу эту ошибку, когда где-то в моем коде отсутствует оператор import. Тот факт, что фактическая ошибка импорта не отображается, на мой взгляд, является ошибкой, как описано в ответе @PDiracDelta. . (Обновление: кажется, это будет исправлено в Flask 0.13.)

Обходной путь, который работает для меня, — указать приложение в командной строке. Из сообщения об ошибке, которое вы процитировали, похоже, что ваше приложение называется «flask_app», поэтому просто введите это:

python flask_app.py

На самом деле это не запустит приложение (если оно не проверит if __name__ == '__main__' или что-то в этом роде), но покажет ошибки импорта.

person Michael Scheper    schedule 01.04.2017

Это сообщение появится, если вы введете flask run в командной строке. Вместо этого используйте python -m flask run после установки переменных export FLASK_APP и export FLASK_ENV. Я столкнулся с этой проблемой, следуя руководству по Flask при создании The Application Factory. В инструкции не указано, что перед flask run ставится python -m.

person y2knoproblem    schedule 29.06.2018

Это может быть много причин.

проблема python2 и python3,

проблема pip2 install Flask и pip3 install Flask,

и проблема (venv) virtual environment и local environment.

В моем случае для решения проблемы пришлось сделать следующее:

  1. python3 -m venv venv

  2. . venv/bin/activate

  3. pip3 install Flask

  4. export FLASK_APP=flask_app

  5. flask run

person Gary Bao Yutong 鲍昱彤    schedule 27.02.2019

Как и в случае с y2knoproblem, я следовал официальному руководству по flask, поэтому использовал фабрику приложений и виртуальную среду venv. я смог использовать

python -m flask run

но это вызвало проблемы с тем, что моя IDE обслуживала локальный хост, а не адрес, доступный извне, как это было, когда я запускал «flask run» в application.py.

Я смог выполнить эту работу, указав

export FLASK_APP=__init__.py

вместо

export FLASK_APP=myapp
person user2903735    schedule 16.11.2018

Пожалуйста, выполните следующие действия:

  1. Убедитесь, что вы уже выполнили [pip install --editable . ]. куда '.' представляют расположение каталога, в котором установлено ваше приложение. например (flask_app)

  2. Запустите python. Он откроет интерпретатор командной строки python.

  3. Попробуйте импортировать приложение фляги. Если это ошибка, вы получите подробную информацию об ошибке. Попробуйте исправить эту ошибку.

Я столкнулся с той же проблемой, выполнил описанные выше шаги и обнаружил, что в работающем коде есть ошибка. Интерпретатор показывает ошибку компиляции.

person Gopal Prasad    schedule 03.03.2017

Версия werkzeug не подходит для flask. Чтобы решить эту проблему, вам необходимо обновить werkzeug, используя: $pip install werkzeug --upgrade

person Eds_k    schedule 20.11.2017

Та же проблема здесь, на шаге 5 руководства по flask: http://flask.pocoo.org/docs/0.12/tutorial/dbinit/.

Что я сделал, это

1) внутри виртуальной среды удалите пакет pip uninstall flaskr

2) деактивировать виртуальную среду, затем повторно активировать ее deactivate, затем source bin/activate

3) переустановите пакет flaskr от pip install --editable .

4) сбросить переменные env на export FLASK_APP=flaskr

5) теперь выполните flask run и нажмите localhost:5000 в браузере, чтобы создать ошибку 404 (нет просмотра, как и ожидалось) вместо ошибки 500 (файл не найден).

или выполните flask initdb, который запускает функцию init_db(), как и ожидалось.

person X.X    schedule 13.04.2018