Скомпилируйте приложение django в исполняемый файл с помощью PyInstaller

Я пытаюсь скомпилировать приложение Django как исполняемый файл. Я знаю, что это не лучшая практика - приложение было создано как серверное приложение, запускаемое при входе в систему, но теперь приложение будет использоваться пользователями, у которых нет доступа к серверу. Теперь задача состоит в том, чтобы сделать приложение устанавливаемым таким образом, чтобы обычный пользователь Windows мог дважды щелкнуть по exe и ввести url в браузере по своему выбору. Я работаю на Linux с Django 3.2.7, Python 3.8 и PyInstaller 4.1 (я знаю, что должен компилировать на windows платформе для Windows OS, чтобы запустить exe, но я сначала хотел попробовать использовать PyInstaller на моей OS).

Теперь, при запуске приложения, оно жалуется на то, что не найдена определенная папка в каталоге dist, что, когда я добавляю требуемую папку, меняется на файл not found "settings.pyc". ".pyc" файлы - это скомпилированные Python файлы, но я не могу grep имя файла, так что PyInstaller даже не создал его.

Я выполнил команду PyInstaller в директории, где находится первый "mysite". Я также попытался отдельно подключить папку "myapp", добавив файл hook, как предложено здесь (https://github.com/pyinstaller/pyinstaller/discussions/5911). Каталог проекта и сообщение об ошибке следующие:

mysite
    manage.py
    mysite
        settings.py
        urls.py
        wsgi.py
        __init__.py
        __pycache__
    myapp
        static
        templates
        apps.py
        models.py
        urls.py
        views.py
        ...
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
  File "manage.py", line 18, in main
  File "django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "django/core/management/__init__.py", line 363, in execute
    settings.INSTALLED_APPS
  File "django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "importlib/__init__.py", line 127, in import_module
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "PyInstaller/loader/pyimod03_importers.py", line 495, in exec_module
  File "mysite/settings.py", line 16, in <module>
  File "pathlib.py", line 1181, in resolve
  File "pathlib.py", line 363, in resolve
  File "pathlib.py", line 347, in _resolve
  File "pathlib.py", line 452, in readlink
FileNotFoundError: [Errno 2] No such file or directory: '/home/me/Documents/App/dist/MyApp/mysite'
[6324] Failed to execute script 'manage' due to unhandled exception!

Когда я создаю требуемый каталог "dist/MyApp/mysite", приложение выдает ошибку о том, что не найден файл "settings.pyc". Чего мне не хватает? Единственное, что я могу придумать в качестве объяснения, это то, что PyInstaller не компилирует код, который должен быть скомпилирован и добавлен в подпапку каталога dist, но я не смог найти никаких соответствующих предупреждений/ошибок в терминале. (Я хотел включить вывод процесса PyInstaller, но SO посчитал его спамом).

Вернуться на верх