【问题标题】:pyinstaller no module named errorpyinstaller没有名为错误的模块
【发布时间】:2019-10-02 19:39:06
【问题描述】:

首先: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 生成我的捆绑包。到目前为止,我使用这条线来生成我的捆绑包:

pyinstaller --noupx --hiddenimport email.mime.message --hiddenimport image hello.py

第二个隐藏导入是错误的,但是,我怎么知道缺少哪个导入???我必须在哪里搜索这些模块?

我的第一个隐藏导入 (email.mime.message) 有一条类似的消息,只是说缺少导入“消息”。我可以阅读here 的解决方案,但这是运气问题!

我如何从该消息中知道什么是必要的依赖项??

非常感谢!

【问题讨论】:

    标签: python flask pyinstaller fedora


    【解决方案1】:

    您应该运行它以使其工作:

    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

    【讨论】:

      【解决方案2】:
      from PyInstaller.utils.hooks import collect_data_files, eval_statement, collect_submodules
      
      datas = collect_submodules('email.mime')
      
      hidden_imports = ['sqlalchemy.sql.default_comparator', 'jinja2'] + datas
      

      将此添加到您从 pyi-makespec 生成的 .spec 文件中,更多信息位于 https://pythonhosted.org/PyInstaller/hooks.html#understanding-pyinstaller-hooks

      【讨论】:

        猜你喜欢
        • 2017-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-17
        • 1970-01-01
        • 2019-06-17
        • 2021-03-23
        • 2014-08-19
        相关资源
        最近更新 更多