#flask
#flask
Вопрос:
Flask не может найти мой каталог templates. У меня была рабочая программа на C:oldpathHerokuApp при этом все настроено и работает правильно.
Затем я удалил все в C:oldpathHerokuApp так что теперь она пуста, и я поместил все файлы в C:newpathHerokuApp (технически, я клонировал с github по новому пути).
Теперь, когда я захожу в http://localhost:5000 я получаю ошибку jinja stacktrace, которая содержит следующую строку:
File "C:/old/path/HerokuApp/launcher.py", line 14, in home
Но, как я уже сказал, этот файл больше не существует!
Мой вопрос: Как я могу заставить Flask обновить свой рабочий каталог?
Я пробовал запускать приложение тремя различными способами, каждый из которых, как я думал, запускал бы его из корневого каталога проекта:
(1) использование python:
C:newpathHerokuApp>"C:pathtopython.exe" launcher.py
(2) использование flask:
set FLASK_APP=launcher.py
C:newpathHerokuApp>"C:pathtoflask.exe" run
(3) использование spyder:
runfile('C:/new/path/HerokuApp/launcher.py', wdir='C:/new/path/HerokuApp')
Комментарии:
1. Вы уверены, что абсолютный путь к старому местоположению где-нибудь не задан жестко?
Ответ №1:
Хорошо, итак, я разобрался. Ранее я использовал Spyder для запуска приложения, но перезапуск ядра или закрытие Spyder не приводит к его полному завершению… диспетчер задач Windows показал, что процесс python все еще будет запущен. Устранение этого, наконец, остановило обслуживание порта localhost: 5000. После этого я смог запустить свое приложение по новому пути.
Вывод для меня — не использовать Spyder для запуска приложений Flask: он не предлагает способа остановить сервер (начиная с версии 3.1.4). Напротив, запуск приложения с использованием python или flask — (1) и (2) в моем вопросе — явно дает вам возможность сделать это, нажав ctrl-C.