Django 4.0 pyinstaller 5.1 не смог запустить команду runserver, выдает ошибку
Попытка упаковать проект django 4.0 в exe с помощью pyinstaller 5.1 и python 3.9 и все прошло успешно, но я столкнулся с проблемой, что когда я запускаю его в cmd с командой ./manage.exe runserver я получаю эту ошибку
В настоящее время я работаю в виртуальной среде и использую операционную систему windows 10. Проект является базовым тестовым проектом, в котором используется одно приложение, несколько satic файлов и sqlite 3 в качестве базы данных по умолчанию
PyInstaller\hooks\rthooks\pyi_rth_django.py", line 69, in _restart_with_reloader
return _old_restart_with_reloader(*args)
File "django\utils\autoreload.py", line 263, in restart_with_reloader
args = get_child_arguments()
File "django\utils\autoreload.py", line 250, in get_child_arguments
raise RuntimeError('Script %s does not exist.' % py_script)
RuntimeError: Script runserver does not exist.
[7892] Failed to execute script 'manage' due to unhandled exception!
Это мой файл .spec
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['manage.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[
'webapp.urls',
'webapp.apps'
],
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='manage',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
disable_windowed_traceback=False,
argv_emulation=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='manage',
)
Это urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('', include('webapp.urls')),
path('admin/', admin.site.urls),
]
manage.py
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'muviny.settings')
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)
if __name__ == '__main__':
main()
Только что нашел ответ: поскольку pyinstaller не поддерживает reload, мне пришлось отключить функцию releod при запуске сервера ./manage.exe runserver --noreload