【问题标题】:PyInstaller Hidden ImportsPyInstaller 隐藏导入
【发布时间】:2020-08-08 06:07:45
【问题描述】:

我有一个完整的 Python 程序,它使用以下导入:

import json
import requests
from natsort import natsorted

但是,当我尝试使用 PyInstaller 将其编译为可执行文件时,出现以下错误:

注意:可能并不完美,因为它是由我的反应时间和屏幕截图捕获的:

File "site-packages\requests\packages\urllib3\packages\six.py", line 82, in _import_module
ImportError: No module named 'queue'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "huepy3.py", line 2, in <module>
File "c:\users\andrew\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimodo3_importer
py", line 389, in load_module
exec(bytecode, module.__dict__)
File "site-packages\requests\__init__.py", line 63, in <module>
File "c:\users\andrew\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimodo3_importer
py", line 389, in load_module
exec(bytecode, module.__dict__)
File "site-packages\requests\utils.py", line 24, in <module>
File "c:\users\andrew\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimodo3_importer
py", line 389, in load_module
exec(bytecode, module.__dict__)
File "site-packages\requests\_internal_utils.py", line 11, in <module>
File "c:\users\andrew\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimodo3_importer
py", line 389, in load_module
exec(bytecode, module.__dict__)
File "site-packages\requests\compat.py", line 11, in <module>
File "c:\users\andrew\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimodo3_importer
py", line 389, in load_module
exec(bytecode, module.__dict__)
File "site-packages\requests\packages\__init__.py", line 29, in <module>
ImportError: No module named 'urllib3'
Failed to execute script huepy3

我阅读了错误,并尝试在我的代码中导入 urllib3。这也返回了相同的错误。我认为这取决于 urllib3 与请求相关的位置,但我该如何解决这个问题?我在网上阅读了有关 FileDialog 的信息,但它再次返回了相同的错误。

任何关于此的指针将不胜感激。

编辑:这不仅仅是队列导入问题,更多的是如何更改库请求尝试导入的路径以及 pyinstaller 如何在第一个实例中获取这些路径。

编辑 2:好的,也许我应该问一下 PyInstaller 如何编译它找到的依赖项以及将它们存储在哪里?然后我可以自己试一试。

编辑 3:通过数小时的网络爬网,我相信我可能是在隐藏导入之后。这些是如何获取 urllib3 的?

【问题讨论】:

标签: python python-requests pyinstaller


【解决方案1】:

您可以:

  • 手动更新规范文件以包含urllib3

  • 使用参数--hidden-import=urllib3 运行pyinstaller

【讨论】:

  • 参数名称是--hidden-import(最后不带S)。
猜你喜欢
  • 2020-09-04
  • 2019-12-05
  • 2023-03-13
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多