Wagtail 2.14.2 Ошибка ModulNotFound после выполнения makemigrations
3-я попытка трясогузки
Я установил его после создания виртуальной среды с именем wag-env с помощью virtualenv в каталоге websites/wag/, а не в папке .virtualenv. Команда была "virtualenv wag-env".
Сделал pip install wagtail
Затем запускается трясогузка start ready_wag
Затем я запустил python3 manage.py makemigrations и получил сообщение об ошибке "ModuleNotFound error wagtail.models". Проверка в lib подтвердила, что на корневом уровне wagtail есть папка models, но нет models.py.
Это моя третья попытка со вчерашнего дня, первая была с mkvirtualenv, была та же проблема, вторая была с virtualenv, пытался интегрировать готовый проект django, и теперь пытаюсь начать проект с нуля.
Я запустил pip freeze --user, там глобально установлен wagtail. Должен ли я избавиться от него?
Заранее спасибо за ответы
Я всегда использовал venv
для создания окружения, никогда не возникало проблем. Похоже, что у вас конфликтующие версии Django, чтобы соответствовать вашей версии Wagtail.
Вот мои старые заметки по изучению Wagtail, процесс, который я все еще обычно использую для каждого проекта:
- Создайте папку проекта, откройте в ней терминальную сессию
- В папке проекта создайте виртуальную среду (
python -m venv .venv
) - Запустите виртуальную среду (
.\.venv\Scripts\Activate.bat
илиsource .venv/bin/activate
) - Установите Wagtail (
pip install wagtail==3.0.3
)<- установите версию по мере необходимости - Начните новый проект в текущем каталоге (
wagtail start project .
) - Установите требования трясогузки (
pip install -r requirements.txt
) - При использовании POSTGRES следуйте инструкциям по настройке POSTGRES ДО миграции.
- Разместите базу данных (
python manage.py migrate
) - Запустите сервер и проверьте сайт по умолчанию (
python manage.py runserver
) - Создайте суперпользователя (
python manage.py createsuperuser
) и войдите в область администратора - Перенесите настройки базы данных, разрешенные хосты и секретный ключ из
base.py
в новый файлlocal.py
в той же папке. Также любые другие настройки, которые применяются только к локальной машине. - Создайте git-репозиторий.
Установка бэкенда POSTGRES
Установив POSTGRES, в командной строке введите команду POSTGRES:
psql -U username
- имя пользователя - это логин глобального администратора db, созданный во время установки
Введите следующие команды для добавления базы данных проекта и пользователя с полными правами на базу данных проекта:
CREATE DATABASE myproject;
CREATE USER myprojectuser WITH PASSWORD 'password';
ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE myprojectuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
Наберите \q
, чтобы выйти из подсказки POSTGRES.
В вашей виртуальной среде установите psycopg2:
pip install psycopg2
Обратите внимание, вы можете получить предупреждение о необходимости установки из альтернативного источника:
pip install psycopg2-binary
Создайте пустую базу данных для проекта. Установите ее в проекте local.py
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'projectdb',
'USER': 'myprojectuser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '5432',
}
}
Перейдите к шагу 8 выше.