В настоящее время я пытаюсь создать автономный исполняемый файл Windows для моего сайта Python-Flask. Я пробовал cx_freeze и PyInstaller, но каждый раз, когда я сталкивался с проблемой импорта. В частности, я получаю следующее отслеживающий:ImportError для сообщения для пакета Flask - cx_freeze и Pyinstaller
* Restarting with stat
* Debugger is active!
* Debugger pin code: 941-349-200
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 12, in <module>
__import__(name + "__init__")
File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 24, in <module>
exec(code, m.__dict__)
File "runserver.py", line 7, in <module>
File "C:\Python27\lib\site-packages\flask\app.py", line 841, in run
run_simple(host, port, self, **options)
File "C:\Python27\lib\site-packages\werkzeug\serving.py", line 706, in run_simple
reloader_type)
File "C:\Python27\lib\site-packages\werkzeug\_reloader.py", line 263, in run_with_reloader
reloader.run()
File "C:\Python27\lib\site-packages\werkzeug\_reloader.py", line 144, in run
self.extra_files):
File "C:\Python27\lib\site-packages\werkzeug\_reloader.py", line 22, in _iter_module_files
filename = getattr(module, '__file__', None)
File "C:\Python27\lib\site-packages\email\__init__.py", line 79, in __getattr__
__import__(self.__name__)
ImportError: No module named message
Оба этих инструментов есть метод для определения точных модулей для включения, в случае, если инструмент не в состоянии обнаружить все, что будет нужно. Я побежал cx_freeze с помощью следующей команды, среди прочего:
python cxfreeze runserver.py --target-dir DB --include-modules=message,email
и pyinstaller с:
python pyinstaller.py runserver.py --debug --onedir --hidden-import=message --hidden-import=email
, но ничего не получалось. Файлы электронной почты и сообщений .pyc существуют после того, как cx_freeze сгенерировал все, и их удаление вызывает другие ошибки, но по какой-то причине их недостаточно для этой части.
Я могу успешно запустить сайт через python самостоятельно, и, как вы можете видеть, ошибка возникает после того, как она запустила сайт.
Я изучаю эту ошибку, и было упомянуто несколько случаев ее упоминания, но всякий раз, когда она воспитывалась, никогда не было для нее решения - некоторые из них указали, что это может быть проблемой с способ werkzeug обрабатывает «ленивый импорт», но разговоры обычно заканчиваются словами «Не используйте флягу, если вы хотите это сделать». Это не жизнеспособное решение для меня, поэтому, если кто-нибудь сможет помочь, это будет очень признательно.