Pyinstaller/Django - pkg_resources.DistributionNotFound: 找不到 'django-omnibus' 发行版

Pyinstaller / Django - pkg_resources.DistributionNotFound: The 'django-omnibus' distribution was not found

我正在尝试为使用 django-omnibus 模块的 django 网站创建安装程序。

我的 Pyinstaller 命令:

pyinstaller --name djangosite manage.py

Pyinstaller 命令 运行s 完成。

尝试运行 Web 服务器使用

djangosite.exe runserver localhost:8000

我收到以下错误:

Traceback (most recent call last):
  File "<string>", line 10, in <module>
  File "django\core\management\__init__.py", line 338, in execute_from_command_line
  File "django\core\management\__init__.py", line 312, in execute
  File "django\__init__.py", line 18, in setup
  File "django\apps\registry.py", line 85, in populate
  File "django\apps\config.py", line 86, in create
  File "importlib\__init__.py", line 37, in import_module
  File "c:\users\USERNAME\appdata\local\temp\pip-build-vxcefe\pyinstaller\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
  File "omnibus\__init__.py", line 3, in <module>
  File "pkg_resources\__init__.py", line 561, in get_distribution
  File "pkg_resources\__init__.py", line 441, in get_provider
  File "pkg_resources\__init__.py", line 962, in require
  File "pkg_resources\__init__.py", line 849, in resolve
pkg_resources.DistributionNotFound: The 'django-omnibus' distribution was not found and is required by the application manage returned -1

如果我删除所有 django-omnibus 代码,该站点可以正常工作(显然我的 websocket 功能除外)。有任何想法吗?谢谢。

我需要为 django-omnibus 添加一个 hook.py 文件并向 pyinstaller 命令添加 --additional-hooks-dir=. 标志。

hook-omnibus.py

from PyInstaller.utils.hooks import copy_metadata, collect_data_files

datas = copy_metadata('django-omnibus')
datas += collect_data_files('omnibus')

这里有类似的答案: https://github.com/pyinstaller/pyinstaller/issues/1713

我知道这是一个迟到的回复,但我在 django-user-accounts - pkg_resources.DistributionNotFound: The 'django-user-accounts' distribution was not found

中遇到了类似的问题

我在搜索修复程序时被引导到这里。我通过 settings.py 的以下补充解决了这个问题 - 希望对其他人有所帮助。

INSTALLED_APPS = [
    ...
    'django.contrib.sites',
    ...
]