Почему сервер Django dev не перезагружается?

Я использую django dev-серверы уже много лет. Я начинаю их с

python manage.py runserver

и когда я изменяю любой код python, они прекрасно перезапускаются.

Сейчас я унаследовал чужой проект для обслуживания, и по какой-то причине я изменил код Python, и сервер не перезапустился. Я не могу найти какой-либо параметр конфигурации, который мог бы вызвать это.

У меня не установлен флаг --noreload, вот мое доказательство:

$ ps -ef | grep runserver
chris     290898  250765  1 11:55 pts/6    00:00:00 python manage.py runserver
chris     290914  290898  5 11:55 pts/6    00:00:01 /home/chris/.virtualenvs/my-webapp-4cLYw-9X/bin/python manage.py runserver

Кто-нибудь сталкивался с этим раньше?

  • Python 3.9.5
  • Django 3.2.6
  • using pipenv to manage my virtual environment

Автозагрузка является функцией Django runserver и используется только в режиме разработки.

прочитайте это в Django docs:

Если вы используете Linux или MacOS и установили pywatchman и службу Watchman, для автозагрузки сервера будут использоваться сигналы ядра (а не ежесекундный опрос временных меток модификации файлов). Это позволяет повысить производительность больших проектов, сократить время отклика после изменения кода, более надежно обнаруживать изменения и снизить энергопотребление. Django поддерживает pywatchman 1.2.0 и выше.

.

Но в производственном режиме серверы запускаются файлом wsgi.py и управляются python-серверами, такими как gunicorn, uwsgi, ...

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

Вернуться на верх