簡體   English   中英

pyinstaller沒有名為錯誤的模塊

[英]pyinstaller no module named error

首先: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圖像hello.py

第二個隱藏的導入是錯誤的,但是,我怎么知道缺少哪個導入??? 我必須在哪里搜索這些模塊?

我的第一個隱藏導入(email.mime.message)也有類似的消息,只是說缺少導入“消息”。 我可以在這里閱讀解決方案,但是這很幸運!

我如何從該消息中知道什么是必要的依賴關系?

大發脾氣!

您應該運行它以使其工作:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM