gpt4 book ai didi

python - Pyinstaller 错误 ImportError : No module named 'requests. packages.chardet.sys

转载 作者:太空狗 更新时间:2023-10-29 17:46:39 25 4
gpt4 key购买 nike

我似乎找不到这个问题的根本原因。我不知道是 pyinstaller、pip 问题、requests 模块还是其他问题,因为无法最终排除。

我用 python 编写了一个脚本,当我们必须部署一个新单元时,它可以为我们的企业网络正确配置一个新的硬件 sonicwall。它在内存中配置一个正确的 .exp 文件,使用默认凭证登录到 sonicwall 设备,通过多部分数据表单导入文件,重新启动 sonicwall,然后再次登录并正确更改共享 key 。出于安全原因,我不能在这里发布代码,但我可以用一个更简单的例子来解释这个问题。以前,代码使用 urllib 和 urllib2 来处理 http 请求,但是当我不得不重写脚本以包含 csrfTokens 时,我发现了 requests 模块。

长话短说,脚本在被 python 解释器调用时效果惊人。但是,当尝试使用 pyinstaller 编译它时,由于我已切换到请求而不是 urllib,因此出现了一系列错误。

更多背景:

Windows 7 - Python2.7.9
pip 6.0.8 from C:\Python27\lib\site-packages\pip-6.0.8-py2.7.egg (python 2.7)
pip freeze output:
pyinstaller==2.1.1.dev0
pywin32==219
requests==2.5.3

作为一个例子,我会给你一些炸毁的代码,一个简单的谷歌请求。

#!/usr/bin/python
import requests
r = requests.get('https://google.com')
print(r.text)

当我从 python 调用文件时,上面的代码适用于一个简单的请求,但是当我编译它时,我得到了这个:

(编辑粘贴输出时出现问题,这里是 pastebin) pastebin

它创建了一个 windows 可执行文件,但是当我尝试运行它时出现以下错误:

注意我确实安装了 ms c++ 2008 可再发行组件以帮助清除 msvcr90.dll,但我仍然收到上述 requests.packages.chardet.sys 错误。

我已经尝试了所有我能想到的方法,安装 chardet,安装 chardet2,安装 cchardet,强制使用早期版本的 pyinstaller 和增量请求。废弃 pip 并手动安装 pyinstaler 和 requests。我对尝试的事情束手无策,我不太明白这里的错误。 requests.packages.chardet 存在于系统中。我的 Windows PATH 中也有 C:\Python27,因为我可以从任何目录调用 python。

如果您需要更多信息,请告诉我。我尝试尽可能彻底地了解错误和安装的内容,但如果需要,我可以提供更多信息。

另外 当我在导入请求时尝试编译时,这个问题似乎只会发生。创建测试脚本、beautifulsoup、urllib/2 等都会编译一个可以正常运行的有效 Windows exe。

最佳答案

我还没有针对此问题的解决方案,但这是由 requests 模块(版本 2.5.2 和 2.5.3)中的最新更改引起的。

现在您可以使用 2.5.1 版,直到 PyInstaller 有合适的钩子(Hook)来解决这个问题。

我无法真正解释这个问题,但看起来 PyInstaller 导入 Hook 和 requests 的一些最新添加 (VendorAlias) 之间存在某种冲突。

关于python - Pyinstaller 错误 ImportError : No module named 'requests. packages.chardet.sys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28775276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com