Невозможно импортировать модели на консоль Python в Pycharm

Я пытаюсь импортировать одну из моих моделей в консоль Python в PyCharm и получаю следующую ошибку:

    from damage.models import Damage
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 20, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\projects\django\deya\damage\models.py", line 2, in <module>
    from django.contrib.auth.models import User
  File "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 20, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\projects\django\deya\venv\lib\site-packages\django\contrib\auth\models.py", line 2, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 20, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\projects\django\deya\venv\lib\site-packages\django\contrib\auth\base_user.py", line 47, in <module>
    class AbstractBaseUser(models.Model):
  File "C:\projects\django\deya\venv\lib\site-packages\django\db\models\base.py", line 100, in __new__
    app_config = apps.get_containing_app_config(module)
  File "C:\projects\django\deya\venv\lib\site-packages\django\apps\registry.py", line 244, in get_containing_app_config
    self.check_apps_ready()
  File "C:\projects\django\deya\venv\lib\site-packages\django\apps\registry.py", line 127, in check_apps_ready
    raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

Все остальное в моем проекте работает нормально.

Я могу импортировать свои модели, когда запускаю

python manage.py shell 

из командной строки или даже в PyCharm Terminal.

Как я могу это решить?

У вас есть виртуальная машина?

pfcodes 22.08.2018 23:38

Да, я делаю C:\projects\django\deya\venv\Scripts\python.exe "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\pydevconsole.py" 6550 6551 - это команда при запуске консоли Python. C:\projects\django\deya\venv - виртуальный

kpk 22.08.2018 23:42

что вы получите, если запустите python manage.py runserver, включили ли вы приложение в INSTALLED_APPS, где определена модель повреждений?

Lingster 23.08.2018 00:09
python manage.py runserver работает нормально, и я также включил приложение в INSTALLED_APPS
kpk 23.08.2018 07:47
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
4
901
1

Ответы 1

К сожалению, я не думаю, что с Django можно работать без инициализации python manage.py runserver. Что происходит, когда вы запускаете это в терминале, получаете ли вы какие-либо ошибки?

На самом деле можно запустить Django вне manage.py, в вашем скрипте вам просто нужно включить: from django.conf import settings from django.core.wsgi import get_wsgi_application from django.core.management import call_command application = get_wsgi_application(), а также добавить переменную среды DJANGO_SETTINGS_MODULE, чтобы django знал, откуда загрузить файл settings.py ...

Lingster 23.08.2018 00:15

@Lingster Да, вне обычной настройки конфигурации - я думаю, это возможно. :) Я предполагаю, что у этого пользователя не было опыта работы с Django до или очень начального уровня.

user10261970 23.08.2018 00:18

DJANGO_SETTINGS_MODULE определяется в настройках проекта. Определяю вручную по os.environ.setdefault("DJANGO_SETTINGS_MODULE", "deya.settings"). Я пробовал также import django и django.setup (). После всего этого я получаю сообщение об ошибке «RuntimeError: класс модели django.contrib.contenttypes.models.ContentType не объявляет явный app_label и не находится в приложении в INSTALLED_APPS».

kpk 23.08.2018 08:32

@kpk Привет, дефляция ярлыка приложения определенно вызвана тем, что вы запускаете его вне сервера запуска python manage.py.

user10261970 23.08.2018 08:40

Другие вопросы по теме