PyInstaller隐藏的进口

时间:2017-03-15 15:39:48

标签: python python-requests pyinstaller

我有一个使用以下导入的完全可用的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?

1 个答案:

答案 0 :(得分:0)

你可以:

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

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