Ошибка AppRegistryNotReady при упаковке приложения Django с помощью Pyinstaller
Я использую Django 3 (также пробовал с 2.2) и pyinstaller для создания автономного приложения на основе Django.
Я запускаю pyinstaller таким образом:
pyinstaller --onedir --clean --name=projectx manage.py --additional-hooks-dir=projectx_backend/
У меня есть пользовательский хук с таким кодом:
from PyInstaller.utils.hooks import collect_submodules
hiddenimports = collect_submodules('django.contrib')
И файл __init__.py
в моей папке projectx_backend/settings
со следующим содержанием:
from .desktop import *
Содержание manage.py
таково:
#!/usr/bin/env python
import os
import sys
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectx_backend.settings.desktop')
import django
from django.conf import settings
from projectx_backend.settings import desktop
settings.configure(default_settings=desktop)
django.setup()
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise 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?"
) from exc
execute_from_command_line(sys.argv)
При попытке собрать exec он жалуется на некоторые отсутствующие модули. Я убедился, что эти модули установлены в моем текущем окружении, но я думаю, что я загружаю их неправильно.