python - pyinstaller没有名为错误的模块

标签 python flask pyinstaller fedora

首先: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/

相关文章:

python - 循环具有不同名称的列

python - 烦人的生成器错误

python - TypeError : Invalid argument,不是字符串或列:pyspark UDF

javascript - Python:获取 flattr 计数

python - pyinstaller可执行文件崩溃了吗?

python - 如何为 Flask 后单元测试 Python 复制 Multidict

python - 属性错误 : module 'typing' has no attribute 'GenericMeta'

python - 使用 Flask-SocketIO 自定义握手数据

python - 是否可以继承 win32serviceutil.ServiceFramework 的子类?

python - pywt `_ctw` 模块上的 Pyinstaller ImportError