首页 > 解决方案 > pyinstaller 无法为 Django 生成可执行文件

问题描述

我试图在谷歌上找到解决方案,但似乎没有一些合适的解决方案。

操作系统:赢 10

Python版本:3.7

Django 版本:3.1.5

pyinstaller 版本:4.2

我遵循了生成步骤:

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

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 中添加一些隐藏导入,但它不起作用。

标签: pythondjangopyinstaller

解决方案


i had the same issue. You do not need this file #hook-django.contrib.py.

In the directory where manage.py is, run:

pyi-makespec -D manage.py 

to create manage.spec

Then modify it and include in hidden-imports[] all files.py in your app and site folder:

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')

After that, run:

pyinstaller manage.spec

Then run in the Myexecutable.exe folder:

Myexecutable runserver --noreload 

推荐阅读