Ошибки Django
Python не находит Django | |
Disallowed host | |
Не работает runserver | |
Web application could not be started | |
You have X unapplied migrations | |
ERROR: Can not perform a '--user' install |
Python не находит Django
(docker) eth1.ru@server:~/HelloDjango [0] $ python3 manage.py runserver
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 14, in <module>
) from exc
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
Причина в том, что в PATH не прописан путь до python. Вернитесь к шагу PATH
Disallowed host
Вы можете запустить Django с помощью
python3 manage.py runserver
И прописали в settings.py свои хосты, например так
ALLOWED_HOSTS = ['http://www.eth1.ru','127.0.0.1','localhost','eth1.ru','www.eth1.ru']
Но при обращении к домену в браузере появляется ошибка DisallowedHost
DisallowedHost at / Invalid HTTP_HOST header: 'www.eth1.ru'. You may need to add 'www.eth1.ru' to ALLOWED_HOSTS. Request Method: GET Request URL: http://www.eth1.ru/ Django Version: 2.1.5 Exception Type: DisallowedHost Exception Value: Invalid HTTP_HOST header: 'www.eth1.ru'. You may need to add 'www.eth1.ru' to ALLOWED_HOSTS. Exception Location: /home/a/andreyolegovichru/.local/lib/python3.7/site-packages/django/http/request.py in get_host, line 106 Python Executable: /home/a/andreyolegovichru/.local/bin/python3.7 Python Version: 3.7.0 Python Path: ['/home/a/andreyolegovichru/eth1.ru/public_html/HelloDjango', '/home/a/andreyolegovichru/.local/lib/python3.7/site-packages', '/home/a/andreyolegovichru/eth1.ru', '/opt/passenger40/helper-scripts', '/home/a/andreyolegovichru/.local/lib/python37.zip', '/home/a/andreyolegovichru/.local/lib/python3.7', '/home/a/andreyolegovichru/.local/lib/python3.7/lib-dynload', '/home/a/andreyolegovichru/.local/lib/python3.7/site-packages'] Server time: Sun, 3 Feb 2019 20:07:57 +0000
Проверьте, всё ли правильно прописали в
settings.py
ALLOWED_HOSTS.
Выключите Django, закройте все консоли подключенные к хостингу или все консоли на локальной машине.
Очистите кэш браузера или откройте url другим браузером.
Не работает runserver Django
Если Вы выполняете команду
python3 manage.py runserver
И ничего не происходит, или например, у Вас работал самый первый проект, а запустить
второй не получается - скорее всего дело в хостинге. На нём может быть закрыта
возможность слушать порты и выбор рабочего проекта происходит с помощью
какого-то скрипта.
Если Вы, как и я, пользуетесь
хостингом beget
, тот этот скипт будет называться
passenger_wsgi.py
и лежать будет на одном уровне с директорией public_html.
Пропишите в нём
os.environ['DJANGO_SETTINGS_MODULE'] = 'Название_нового_прокта.settings'
Web application could not be started
Если Вы хотите переключиться между проектами и уже обновили скрипе passenger_wsgi.py но получили ошибку
Web application could not be started
Скорее всего Вы забыли пересоздать файл tmp/restart.txt
(docker) andreyolegovich@server:~/eth1.ru [0] $ touch tmp/restart.txt
Также советую перепроверить не забыли ли Вы поменть системный путь на нужный Вам проект.
При смене проекта обычно нужно делать два изменения в файле passenger_wsgi.py
# -*- coding: utf-8 -*-
import os, sys
sys.path.insert(0, '/home/a/andreyolegovich/eth1.ru/public_html/Project_1')
#sys.path.insert(0, '/home/a/andreyolegovich/eth1.ru/public_html/Project_2')
sys.path.insert(1, '/home/a/andreyolegovich/.local/lib/python3.7/site-packages')
os.environ['DJANGO_SETTINGS_MODULE'] = 'Project_1.settings'
#os.environ['DJANGO_SETTINGS_MODULE'] = 'Project_2.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Ещё одна возможная причина - незаданные переменные в файле manage.py
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
python3 manage.py migrate
ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
Если вы пользуетесь виртуальным окружением флаг --user вам скорее всего вообще не нужен.