❌ Ошибка 1: ModuleNotFoundError: No module named 'flask'
# Неправильно — запуск без виртуального окружения
python app.py
# ModuleNotFoundError: No module named 'flask'
Почему возникает: Flask установлен внутри виртуального окружения, но оно не активировано. Python ищет пакеты в глобальном окружении, где Flask нет.
✅ Исправление
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate
# Проверьте, что Flask виден
pip list | findstr flask # Windows
pip list | grep flask # Mac/Linux
# Теперь запускайте
python app.py
Что изменилось: после активации venv Python ищет пакеты в папке venv/, где установлен Flask.
❌ Ошибка 2: Address already in use (порт 5000 занят)
# Ошибка в терминале
OSError: [Errno 98] Address already in use
Почему возникает: предыдущий запуск Flask всё ещё работает в фоне, либо другая программа заняла порт 5000.
✅ Исправление
Вариант 1 — изменить порт:
app.run(debug=True, port=5001)
Вариант 2 — найти и завершить процесс (Windows):
netstat -ano | findstr :5000
taskkill /PID <номер_PID> /F
Вариант 3 — найти и завершить процесс (Mac/Linux):
lsof -i :5000
kill -9 <PID>
❌ Ошибка 3: 404 Not Found при открытии маршрута
# В браузере: Not Found
# The requested URL was not found on the server.
Почему возникает: либо опечатка в URL, либо маршрут не зарегистрирован (например, функция с @app.route ниже блока if __name__).
✅ Исправление
- Проверьте URL в браузере — совпадает ли с
@app.route(...). - Убедитесь, что декоратор
@app.routeстоит прямо над функцией, без пустых строк между ними. - Убедитесь, что код с маршрутом выполняется при запуске (не внутри другой функции).
❌ Ошибка 4: Циклический импорт (Circular Import)
# app.py импортирует views.py
# views.py импортирует app из app.py
# ImportError: cannot import name 'app'
Почему возникает: два модуля импортируют друг друга. Python не может разрешить зависимость.
✅ Исправление
Используйте Application Factory или Blueprints (см. раздел «Старый vs Новый»). В простых случаях — держите маршруты в одном файле до тех пор, пока проект не вырастет.