【问题标题】:Failed to generate executable file for Django by pyinstallerpyinstaller 无法为 Django 生成可执行文件
【发布时间】:2021-07-27 20:54:14
【问题描述】:

我已经尝试在google上找到解决方案,但似乎没有一些合适的解决方案。

操作系统:Win 10

Python 版本:3.7

Django 版本:3.1.5

pyinstaller 版本:4.2

有我遵循的生成步骤:

1.在项目目录下执行命令pyi-makespec -D manage.py

2.执行命令pyinstaller manage.spec

但是在第二步中发生了一些不好的事情,日志显示:

    19337 INFO: Analyzing hidden import 'django.db.backends.__pycache__.base'
    19362 ERROR: Hidden import 'django.db.backends.__pycache__.base' not found
    19362 INFO: Analyzing hidden import 'django.contrib.gis.db.models'
    20603 INFO: Processing module hooks...
    20604 INFO: Loading module hook 'hook-win32ctypes.core.py' from 'd:\\python\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
    21318 INFO: Loading module hook 'hook-difflib.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    21340 INFO: Excluding import of doctest from module difflib
    21341 INFO: Loading module hook 'hook-distutils.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    21355 INFO: Loading module hook 'hook-distutils.util.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    21358 INFO: Excluding import of lib2to3.refactor from module distutils.util
    21358 INFO: Loading module hook 'hook-django.contrib.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    Traceback (most recent call last):
      File "<string>", line 21, in walk_packages
      File "d:\python\lib\site-packages\django\contrib\gis\admin\__init__.py", line 5, in <module>
        from django.contrib.gis.admin.options import GeoModelAdmin, OSMGeoAdmin
      File "d:\python\lib\site-packages\django\contrib\gis\admin\options.py", line 2, in <module>
        from django.contrib.gis.admin.widgets import OpenLayersWidget
      File "d:\python\lib\site-packages\django\contrib\gis\admin\widgets.py", line 3, in <module>
        from django.contrib.gis.gdal import GDALException
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
        from django.contrib.gis.gdal.datasource import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module>
        from django.contrib.gis.gdal.driver import Driver
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
        from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
        from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 46, in <module>
        % '", "'.join(lib_names)
    django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
    collect_submodules: failed to import 'django.contrib.gis.admin'!
    Traceback (most recent call last):
      File "<string>", line 21, in walk_packages
      File "d:\python\lib\site-packages\django\contrib\gis\db\models\__init__.py", line 3, in <module>
        import django.contrib.gis.db.models.functions  # NOQA
      File "d:\python\lib\site-packages\django\contrib\gis\db\models\functions.py", line 3, in <module>
        from django.contrib.gis.db.models.fields import BaseSpatialField, GeometryField
      File "d:\python\lib\site-packages\django\contrib\gis\db\models\fields.py", line 3, in <module>
        from django.contrib.gis import forms, gdal
      File "d:\python\lib\site-packages\django\contrib\gis\forms\__init__.py", line 3, in <module>
        from .fields import (  # NOQA
      File "d:\python\lib\site-packages\django\contrib\gis\forms\fields.py", line 2, in <module>
        from django.contrib.gis.gdal import GDALException
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
        from django.contrib.gis.gdal.datasource import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module>
        from django.contrib.gis.gdal.driver import Driver
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
        from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
        from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 46, in <module>
        % '", "'.join(lib_names)
    django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
    collect_submodules: failed to import 'django.contrib.gis.db.models'!
    Traceback (most recent call last):
      File "<string>", line 21, in walk_packages
      File "d:\python\lib\site-packages\django\contrib\gis\forms\__init__.py", line 3, in <module>
        from .fields import (  # NOQA
      File "d:\python\lib\site-packages\django\contrib\gis\forms\fields.py", line 2, in <module>
        from django.contrib.gis.gdal import GDALException
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
        from django.contrib.gis.gdal.datasource import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module>
        from django.contrib.gis.gdal.driver import Driver
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
        from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
        from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 46, in <module>
        % '", "'.join(lib_names)
    django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
    collect_submodules: failed to import 'django.contrib.gis.forms'!
    Traceback (most recent call last):
      File "<string>", line 21, in walk_packages
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
        from django.contrib.gis.gdal.datasource import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module>
        from django.contrib.gis.gdal.driver import Driver
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
        from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
        from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 46, in <module>
        % '", "'.join(lib_names)
    django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
    collect_submodules: failed to import 'django.contrib.gis.gdal'!
    Traceback (most recent call last):
      File "<string>", line 21, in walk_packages
      File "d:\python\lib\site-packages\django\contrib\gis\geos\__init__.py", line 5, in <module>
        from .collections import (  # NOQA
      File "d:\python\lib\site-packages\django\contrib\gis\geos\collections.py", line 8, in <module>
        from django.contrib.gis.geos.geometry import GEOSGeometry, LinearGeometryMixin
      File "d:\python\lib\site-packages\django\contrib\gis\geos\geometry.py", line 8, in <module>
        from django.contrib.gis import gdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
        from django.contrib.gis.gdal.datasource import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module>
        from django.contrib.gis.gdal.driver import Driver
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
        from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
        from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 46, in <module>
        % '", "'.join(lib_names)
    django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
    collect_submodules: failed to import 'django.contrib.gis.geos'!
    Traceback (most recent call last):
      File "<string>", line 21, in walk_packages
      File "d:\python\lib\site-packages\django\contrib\gis\sitemaps\__init__.py", line 2, in <module>
        from django.contrib.gis.sitemaps.kml import KMLSitemap, KMZSitemap
      File "d:\python\lib\site-packages\django\contrib\gis\sitemaps\kml.py", line 2, in <module>
        from django.contrib.gis.db.models import GeometryField
      File "d:\python\lib\site-packages\django\contrib\gis\db\models\__init__.py", line 3, in <module>
        import django.contrib.gis.db.models.functions  # NOQA
      File "d:\python\lib\site-packages\django\contrib\gis\db\models\functions.py", line 3, in <module>
        from django.contrib.gis.db.models.fields import BaseSpatialField, GeometryField
      File "d:\python\lib\site-packages\django\contrib\gis\db\models\fields.py", line 3, in <module>
        from django.contrib.gis import forms, gdal
      File "d:\python\lib\site-packages\django\contrib\gis\forms\__init__.py", line 3, in <module>
        from .fields import (  # NOQA
      File "d:\python\lib\site-packages\django\contrib\gis\forms\fields.py", line 2, in <module>
        from django.contrib.gis.gdal import GDALException
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
        from django.contrib.gis.gdal.datasource import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module>
        from django.contrib.gis.gdal.driver import Driver
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
        from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
        from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 46, in <module>
        % '", "'.join(lib_names)
    django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
    collect_submodules: failed to import 'django.contrib.gis.sitemaps'!
    Traceback (most recent call last):
      File "<string>", line 21, in walk_packages
      File "d:\python\lib\site-packages\django\contrib\gis\utils\__init__.py", line 4, in <module>
        from django.contrib.gis.utils.ogrinfo import ogrinfo  # NOQA
      File "d:\python\lib\site-packages\django\contrib\gis\utils\ogrinfo.py", line 7, in <module>
        from django.contrib.gis.gdal import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
        from django.contrib.gis.gdal.datasource import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module>
        from django.contrib.gis.gdal.driver import Driver
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
        from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
        from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 46, in <module>
        % '", "'.join(lib_names)
    django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
    collect_submodules: failed to import 'django.contrib.gis.utils'!
    30384 INFO: Loading module hook 'hook-django.contrib.sessions.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    30478 INFO: Loading module hook 'hook-django.core.cache.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    30828 INFO: Loading module hook 'hook-django.core.mail.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    30987 INFO: Loading module hook 'hook-django.core.management.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    31034 INFO: Import to be excluded not found: 'tkinter'
    31034 INFO: Import to be excluded not found: 'IPython'
    31036 INFO: Import to be excluded not found: 'matplotlib'
    31037 INFO: Loading module hook 'hook-django.db.backends.mysql.base.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    31114 INFO: Loading module hook 'hook-django.db.backends.oracle.base.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    31115 WARNING: Hidden import "django.db.backends.oracle.compiler" not found!
    31115 INFO: Loading module hook 'hook-django.db.backends.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    31147 WARNING: Hidden import "django.db.backends.__pycache__.base" not found!
    31147 INFO: Loading module hook 'hook-django.py' from 'd:\\python\\lib\\site-packages\\PyInstaller\\hooks'...
    Traceback (most recent call last):
      File "<string>", line 21, in walk_packages
      File "d:\python\lib\site-packages\django\contrib\gis\admin\__init__.py", line 5, in <module>
        from django.contrib.gis.admin.options import GeoModelAdmin, OSMGeoAdmin
      File "d:\python\lib\site-packages\django\contrib\gis\admin\options.py", line 2, in <module>
        from django.contrib.gis.admin.widgets import OpenLayersWidget
      File "d:\python\lib\site-packages\django\contrib\gis\admin\widgets.py", line 3, in <module>
        from django.contrib.gis.gdal import GDALException
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
        from django.contrib.gis.gdal.datasource import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module>
        from django.contrib.gis.gdal.driver import Driver
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
        from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
        from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 46, in <module>
        % '", "'.join(lib_names)
    django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
    collect_submodules: failed to import 'django.contrib.gis.admin'!
    Traceback (most recent call last):
      File "<string>", line 21, in walk_packages
      File "d:\python\lib\site-packages\django\contrib\gis\db\models\__init__.py", line 3, in <module>
        import django.contrib.gis.db.models.functions  # NOQA
      File "d:\python\lib\site-packages\django\contrib\gis\db\models\functions.py", line 3, in <module>
        from django.contrib.gis.db.models.fields import BaseSpatialField, GeometryField
      File "d:\python\lib\site-packages\django\contrib\gis\db\models\fields.py", line 3, in <module>
        from django.contrib.gis import forms, gdal
      File "d:\python\lib\site-packages\django\contrib\gis\forms\__init__.py", line 3, in <module>
        from .fields import (  # NOQA
      File "d:\python\lib\site-packages\django\contrib\gis\forms\fields.py", line 2, in <module>
        from django.contrib.gis.gdal import GDALException
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module>
        from django.contrib.gis.gdal.datasource import DataSource
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module>
        from django.contrib.gis.gdal.driver import Driver
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module>
        from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module>
        from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
      File "d:\python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 46, in <module>
        % '", "'.join(lib_names)
    django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal301", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "gdal20"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.
...
    collect_submodules: failed to import 'django.contrib.gis.utils'!
    39701 INFO: Determining a mapping of distributions to packages...
    46970 INFO: Packages required by django:
    ['sqlparse', 'pytz', 'asgiref']
    46971 INFO: Django root directory E:\programing_projects\NSSS-Copy\stro_system\stro_system
    Traceback (most recent call last):
      File "d:\python\lib\site-packages\PyInstaller\utils\hooks\subproc\django_import_finder.py", line 29, in <module>
        django.setup()
      File "d:\python\lib\site-packages\django\__init__.py", line 19, in setup
        configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
      File "d:\python\lib\site-packages\django\conf\__init__.py", line 82, in __getattr__
        self._setup(name)
      File "d:\python\lib\site-packages\django\conf\__init__.py", line 69, in _setup
        self._wrapped = Settings(settings_module)
      File "d:\python\lib\site-packages\django\conf\__init__.py", line 170, in __init__
        mod = importlib.import_module(self.SETTINGS_MODULE)
      File "d:\python\lib\importlib\__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
      File "<frozen importlib._bootstrap>", line 983, in _find_and_load
      File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 728, in exec_module
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "E:\programing_projects\NSSS-Copy\stro_system\stro_system\settings.py", line 137, in <module>
        os.path.join(BASE_DIR,"sources"),
      File "d:\python\lib\ntpath.py", line 76, in join
        path = os.fspath(path)
    TypeError: expected str, bytes or os.PathLike object, not WindowsPath
    48409 INFO: Collecting Django migration scripts.
    Traceback (most recent call last):
      File "<string>", line 2, in <module>
      File "E:\programing_projects\NSSS-Copy\stro_system\stro_system\settings.py", line 137, in <module>
        os.path.join(BASE_DIR,"sources"),
      File "d:\python\lib\ntpath.py", line 76, in join
        path = os.fspath(path)
    TypeError: expected str, bytes or os.PathLike object, not WindowsPath
    Traceback (most recent call last):
      File "d:\python\lib\runpy.py", line 193, in _run_module_as_main
        "__main__", mod_spec)
      File "d:\python\lib\runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "D:\python\Scripts\pyinstaller.exe\__main__.py", line 7, in <module>
      File "d:\python\lib\site-packages\PyInstaller\__main__.py", line 114, in run
        run_build(pyi_config, spec_file, **vars(args))
      File "d:\python\lib\site-packages\PyInstaller\__main__.py", line 65, in run_build
        PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
      File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 725, in main
        build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
      File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 672, in build
        exec(code, spec_namespace)
      File "manage.spec", line 17, in <module>
        noarchive=False)
      File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 242, in __init__
        self.__postinit__()
      File "d:\python\lib\site-packages\PyInstaller\building\datastruct.py", line 160, in __postinit__
        self.assemble()
      File "d:\python\lib\site-packages\PyInstaller\building\build_main.py", line 420, in assemble
        self.graph.process_post_graph_hooks()
      File "d:\python\lib\site-packages\PyInstaller\depend\analysis.py", line 367, in process_post_graph_hooks
        module_hook.post_graph()
      File "d:\python\lib\site-packages\PyInstaller\depend\imphook.py", line 447, in post_graph
        self._load_hook_module()
      File "d:\python\lib\site-packages\PyInstaller\depend\imphook.py", line 409, in _load_hook_module
        self.hook_module_name, self.hook_filename)
      File "d:\python\lib\site-packages\PyInstaller\compat.py", line 598, in importlib_load_source
        return mod_loader.load_module()
      File "<frozen importlib._bootstrap_external>", line 407, in _check_name_wrapper
      File "<frozen importlib._bootstrap_external>", line 907, in load_module
      File "<frozen importlib._bootstrap_external>", line 732, in load_module
      File "<frozen importlib._bootstrap>", line 265, in _load_module_shim
      File "<frozen importlib._bootstrap>", line 696, in _load
      File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 728, in exec_module
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "d:\python\lib\site-packages\PyInstaller\hooks\hook-django.py", line 72, in <module>
        installed_apps = eval(get_module_attribute(settings_module, 'INSTALLED_APPS'))
      File "<string>", line 0
    
        ^
    SyntaxError: unexpected EOF while parsing

然后我尝试在 Lib\site-packages\PyInstaller\hooks 中添加一个 hook-django.contrib.py 文件

#hook-django.contrib.py
from PyInstaller.utils.hooks import collect_submodules
hiddenimports = collect_submodules('django.contrib')

并在 manage.spec 中添加一些隐藏导入,但它不起作用。

【问题讨论】:

    标签: python django pyinstaller


    【解决方案1】:

    我有同样的问题。 你不需要这个文件#hook-django.contrib.py。

    在manage.py所在目录下,运行:

    pyi-makespec -D manage.py 
    

    创建manage.spec

    然后修改它并在 hidden-imports[] 中包含您的应用和站点文件夹中的所有 files.py:

    a = Analysis(['manage.py'],
                 pathex=[],
                 binaries=[],
                 datas=[('Myapp/templates','Myapp/templates'),
                         ('static','static')],
                 hiddenimports=[
                'Myapp',
                'Myapp.apps',
                'Myapp.admin',
                'Myapp.constants',
                'Myapp.forms',
                'Myapp.models',
                'Myapp.serializers',
                'Myapp.tests',
                'Myapp.urls',
                'Myapp.views',                                  
                'Mysite',
                'Mysite.asgi',
                'Mysite.wsgi',
                'Mysite.settings',
                'Mysite.urls',
                'django.contrib.admin',
                'django.contrib.auth',
                'django.contrib.contenttypes',
                'django.contrib.sessions',
                'django.contrib.messages',
                'django.contrib.staticfiles',
                'rest_framework',
                'django_extensions',
                'django_reverse_admin',
                'widget_tweaks'
                 ],
                 hookspath=[],
                 hooksconfig={},
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher,
                 noarchive=False)
    pyz = PYZ(
    a.pure, 
    a.zipped_data,
                 cipher=block_cipher)
    
    exe = EXE(pyz,
              a.scripts, 
              [],
              exclude_binaries=True,
              name='MyExecutable',
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              console=True,
              disable_windowed_traceback=False,
              target_arch=None,
              codesign_identity=None,
              entitlements_file=None )
    
    coll = COLLECT(exe,
                   a.binaries,
                   a.zipfiles,
                   a.datas, 
                   strip=False,
                   upx=True,
                   upx_exclude=[],
                   name='MyExecutable')
    

    之后,运行:

    pyinstaller manage.spec
    

    然后在Myexecutable.exe文件夹中运行:

    Myexecutable runserver --noreload 
    

    【讨论】:

      猜你喜欢
      • 2010-09-24
      • 2019-10-12
      • 2019-12-19
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      相关资源
      最近更新 更多