Flask не может найти папку templates, потому что она работает из устаревшего корневого каталога

#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.