首先:python 2.7,pyinstaller 3.3.1
我是 pyinstaller 和 Flask 的新手,我正在尝试为我的嵌入式 Linux 系统开发一个小应用程序。
关键点是,每次我使用 pyinstaller 生成应用程序时,它都能工作,但当我运行它时,它却不起作用。
我的最后一个错误如下:
Traceback (most recent call last):
File "hello.py", line 22, in <module>
File "flask/app.py", line 943, in run
File "werkzeug/serving.py", line 812, in run_simple
File "werkzeug/_reloader.py", line 273, in run_with_reloader
File "werkzeug/_reloader.py", line 152, in run
File "werkzeug/_reloader.py", line 22, in _iter_module_files
File "email/__init__.py", line 79, in __getattr__
ImportError: No module named image
就我而言,我不需要这个模块,但对我来说,最重要的是知道在哪里可以找到那些隐藏的依赖项。我真正想知道的是一种方法来查找这些依赖项并更改我的脚本以使用 pyinstaller 生成 bundle 。到目前为止,我使用这条线来生成我的包:
pyinstaller --noupx --hiddenimport email.mime.message --hiddenimport image hello.py
第二个隐藏导入是错误的,但是,我怎么知道缺少哪个导入???我必须在哪里搜索这些模块?
我的第一个隐藏导入(email.mime.message)有一条类似的消息,只是说缺少导入“消息”。我可以读到 here解决方案,但这是一个运气问题!
我如何从该消息中知道必要的依赖项是什么?
非常感谢!
最佳答案
您应该运行它才能正常工作:
pyinstaller -F -w \
--onefile \
--hidden-import='email.mime.multipart' \
--hidden-import='email.mime.message' \
--hidden-import='email.mime.text' \
--hidden-import='email.mime.image' \
--hidden-import='email.mime.audio' \
--hidden-import='sqlalchemy.sql.default_comparator' \
--hidden-import='jinja2' \
main.py
感谢mrf345
关于python - pyinstaller没有名为错误的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50389735/