Flask "ошибка: предоставленный файл/путь не существует", хотя файл существует
Я использую export FLASK_APP=flask_app
а потом сделай flask run
но я получаю ошибку:
, файл тут существует и даже находится в настоящем рабочем каталоге. Использование полного пути к файлу также не работает.ошибка: предоставленный файл/путь (flask_app) не существует. Проверьте правильность пути. Если приложение не находится на PYTHONPATH, убедитесь, что расширение .py
7 ответов
такая ситуация возникает, когда у вас есть ImportError
который не распространяется до вашего терминала. Проверка все ваших файлов для недопустимых операторов импорта, исправить их, и ошибка должна исчезнуть.
изменить 2017-04-02: @Michael указал, что моя ссылка теперь помещена под тегом "старое сообщение часть 2" неверна. Я не знаю, как эта ошибка возникла, но я нашел очень недавний пост на Фляжка Github где ссылка в commit это должно было исправить проблему 30 декабря 2016 года. Вероятно, в то время я действительно запускал более старую версию фляги.
СТАРОЕ СООБЩЕНИЕ ЧАСТЬ 2: Этот вопрос обсуждается на Фляжка Github, хотя я не уверен, когда и даже было ли это на самом деле исправлено, так как я все еще сталкиваюсь с ошибкой сегодня, хотя я загрузил колбу после слияния исправления, описанного на этой странице (12 Aug 2016).
сообщение об ошибке из колбы версии 0.x при работе с переменными среды просто обновите колбу до версии 1.x.
pip install -U flask
Я вижу эту ошибку, когда мне не хватает import
заявление где-то в моем коде. Тот факт, что фактическая ошибка импорта не отображается, на мой взгляд, является ошибкой, как описано в @PDiracDelta ответ. (обновление: кажется, он будет исправлен в колбе 0.13.)
обходной путь, который работает для меня, указывает приложение в командной строке. Из сообщения об ошибке, которое вы процитировали, похоже, что ваше приложение называется "flask_app", поэтому просто введите это:
python flask_app.py
это фактически не будет запускать приложение (если оно не проверяет if __name__ == '__main__'
или что-то еще), но он покажет ошибки импорта.
это сообщение произойдет, если вы выдадите flask run
в командной строке. Вместо этого используйте python -m flask run
после установки export FLASK_APP
и export FLASK_ENV
переменные. Я столкнулся с этой проблемой, следуя руководству по колбе при создании фабрики приложений. В инструкции не указывается предисловие flask run
с python -m
.
пожалуйста, выполните следующие действия:
убедитесь, что вы уже сделали с [pip install --editable . ]. где.' "представляет расположение каталога, в котором установлено ваше приложение. е.г(flask_app)
запустить python Он откроет интерпретатор python командной строки
попробуйте импортировать приложение flask Если его там ошибка, вы получите подробную ошибку. Попробуйте исправить эту ошибку.
Я побежал в ту же проблему и выполнили описанные выше шаги и обнаружили, что в запущенном коде есть ошибка. Интерпретатор показывает ошибку компиляции.
версия werkzeug не подходит для колбы. Для решения этой проблемы необходимо обновить werkzeug, использовать:
$pip install werkzeug --upgrade
же вопрос здесь на шаге 5 колбы учебник: 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
запускает