Ошибки 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) andreyolegovich.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.andreyolegovich.ru','127.0.0.1','localhost','andreyolegovich.ru','www.andreyolegovich.ru']

Но при обращении к домену в браузере появляется ошибка DisallowedHost

DisallowedHost at / Invalid HTTP_HOST header: 'www.andreyolegovich.ru'. You may need to add 'www.andreyolegovich.ru' to ALLOWED_HOSTS. Request Method: GET Request URL: http://www.andreyolegovich.ru/ Django Version: 2.1.5 Exception Type: DisallowedHost Exception Value: Invalid HTTP_HOST header: 'www.andreyolegovich.ru'. You may need to add 'www.andreyolegovich.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/andreyolegovich.ru/public_html/HelloDjango', '/home/a/andreyolegovichru/.local/lib/python3.7/site-packages', '/home/a/andreyolegovichru/andreyolegovich.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:~/andreyolegovich.ru [0] $ touch tmp/restart.txt

Также советую перепроверить не забыли ли Вы поменть системный путь на нужный Вам проект.

При смене проекта обычно нужно делать два изменения в файле passenger_wsgi.py

# -*- coding: utf-8 -*-
import os, sys
sys.path.insert(0, '/home/a/andreyolegovich/andreyolegovich.ru/public_html/Project_1')
#sys.path.insert(0, '/home/a/andreyolegovich/andreyolegovich.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 вам скорее всего вообще не нужен.

IT

Популярные статьи на сайте

Далее идут статьи с дружественных сайтов. Можете перейти на них если тема вас заинтересует.

Эти сайты могут иметь JavaScript, Yandex метрику или Google Analytics а также могут показывать рекламу.

Образование

Путешествия

Испания

Финляндия

Разное

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@eth1.ru если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Хотите помочь сайту материально
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......