AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready

8 мая 2020 г. 22:56

В общем случае ошибка:

django.core.exceptions.AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time.

говорит о том, что где-то происходит вызов неленивых функций перевода во время импорта пакетов. Другими словами, во время импорта перевод должен быть ленивым, то есть использоваться функция ugettext_lazy (или pgettext_lazy).

Например, в моделях нужно использовать ugettext_lazy (вместо простого ugettext):

from django.db import models
from django.utils.translation import gettext_lazy as _


class MyModel(models.Model):
    title = models.CahrField(_('Title'))

Бывает по трейсбеку не понятно, где нужно поправить код, чтобы не возникала ошибка AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready.

Например, однажды в моём случае локально собирался проект после обновления пакетов в виртуальном окружении, а на сервере после обновления пакетов возникала данная ошибка. Сравнив сборки виртуальных окружений через pip freeze, обнаружилось, что на локальной машине устанавливается easy-thumbnails==2.6, а на сервере easy-thumbnails==2.7.

В requirements.txt я указал версию, которая устанавливается на локальной машине, то есть easy-thumbnails==2.6 и тогда после сборки на сервере всё заработало. Скорее всего easy-thumbnails==2.7 не совместима с используемой версии Django==1.10.7, которая была установлена на тот момент в моём приложении, хотя в документации easy-thumbnails пишется, что поддерживается версии Django 1.4 и 1.6 и выше.

Таким образом, если в одном месте работает, а в другом нет, то сравните, какие версии библиотек установлены через pip freeze.

Оцените статью

0 из 5 (всего 0 оценок)

captcha
Отмеченные звёздочкой поля ( * ) являются обязательными для заполнения.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор статьи

Артём Мальцев

Веб-разработчик, владеющий знаниями языка программирования Python, фреймворка Django, системы управления содержимым сайта Django CMS, платформы для создания интернет-магазина Django Shop и многих различных приложений, использующих эти технологии.

Права на использование материала, расположенного на этой странице https://vivazzi.pro/ru/it/translation-infrastructure-cannot-be-initialized/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Артём Мальцев
Ссылка на статью: <a href="https://vivazzi.pro/ru/it/translation-infrastructure-cannot-be-initialized/">https://vivazzi.pro/ru/it/translation-infrastructure-cannot-be-initialized/</a>

Больше: Правила использования сайта

Для тех, кто продаёт через свой профиль в соц. сетях: моя сестра, Анастасия Мальцева запустила свой курс: «Комфортные продажи через контент»

Все знания построены на собственном опыте и имеют хороший результат, поэтому если вы продаёте товары или услуги и хотите повысить эффективность вашего аккаунта или сайта, то курс будет для вас полезен!

Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.

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

Комментарии: 0

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

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментирования от своего имени войдите или зарегистрируйтесь на сайте Vuspace

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте

Выберите валюту для отображения денежных единиц