【问题标题】:Falon 3.0 submodule not import while running windows executable(pyinstaller)运行 Windows 可执行文件(pyinstaller)时,Falon 3.0 子模块不导入
【发布时间】:2022-07-26 19:02:28
【问题描述】:

我在我的产品中使用 falcon 3.1.0 框架进行微服务开发。此外,我正在使用 pyinstaller 4.10 创建 Windows 可执行文件。我可以使用 gevent 运行微服务,也可以使用 pyinstaller 创建 Windows 可执行文件。在运行可执行文件时,它无法导入 falcon 子模块,但对于 falcon 2.0,它可以工作。它会引发以下错误。

Traceback (most recent call last):
File "run_accountregistration.py", line 9, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
File "app.py", line 6, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
File "falcon__init__.py", line 32, in <module>
File "falcon\app.py", line 22, in init falcon.app
ImportError: cannot import name app_helpers
[5848] Failed to execute script 'run_accountregistration' due to unhandled exception!

对于 falcon 2.0,它可以工作

(accregisterenv) C:\MUM_DEV_TEAM\edcservices\accountregistration-ps>dist\run_accountregistration\run_accountregistration.exe
Directory  logs  Created
Directory  account_registration  Created
Successfully fetch connection details
Server start running at 127.0.0.1:8005```

【问题讨论】:

  • 这很可能是由pyinstaller 所谓的“隐藏导入”引起的,即静态分析无法检测到的。因为pyinstaller 不知道该模块,所以它不包含在.exe 中。该文档有一个非常有用的部分,称为 When things go wrong。我建议你完成它。
  • 感谢您的快速回复。在 pyinstaller 规范文件中添加了以下隐藏导入。 hiddenimports=['falcon.app_helpers', 'xml.etree', 'responders'] 。现在可执行 import falcon app_helpers 子模块,但它不是从 falcon 导入响应者子模块。

标签: python pyinstaller falcon


【解决方案1】:

遇到同样的问题,我将“falcon.responders”添加到隐藏导入列表中。但运行可执行文件时仍然出现导入错误。你的问题解决了吗?

Traceback (most recent call last):
  File "s2rdf.py", line 62, in <module>
    import morph_kgc
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "morph_kgc\__init__.py", line 16, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "morph_kgc\engine.py", line 16, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "morph_kgc\materializer.py", line 14, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "falcon\__init__.py", line 32, in <module>
  File "falcon\app.py", line 24, in init falcon.app
ImportError: cannot import name responders
[16196] Failed to execute script 's2rdf' due to unhandled exception!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多