Python urllib3 错误 - ImportError: cannot import name UnrewindableBodyError

新手上路,请多包涵

我将我的 cronjob 设置为在特定时间调用我的脚本( ex- 2 4 5 10 * python3 mayank/exp/test.py )。当我的 test.py 被调用时,我将在我的 test.py 脚本中激活 virtualenv,如下所示。

 activate = "/home/myserver/schedule_py3/bin/activate_this.py"
exec(open(activate).read())

激活虚拟环境(其中包含 python3 和运行脚本所需的包)后,我正在尝试 导入请求,它向我显示错误:-

 File "schedule_module/Schedule/notification_task.py", line 2, in <module>
    import requests
  File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 43, in <module>
    import urllib3
  File "/usr/lib/python2.7/site-packages/urllib3/__init__.py", line 10, in <module>
    from .connectionpool import (
  File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 31, in <module>
    from .connection import (
  File "/usr/lib/python2.7/site-packages/urllib3/connection.py", line 45, in <module>
    from .util.ssl_ import (
  File "/usr/lib/python2.7/site-packages/urllib3/util/__init__.py", line 4, in <module>
    from .request import make_headers
  File "/usr/lib/python2.7/site-packages/urllib3/util/request.py", line 5, in <module>
    from ..exceptions import UnrewindableBodyError
ImportError: cannot import name UnrewindableBodyError

正如我所看到的,它正在使用 python2.7。谁能告诉我哪里错了?

注意- 我已经在我的虚拟环境中使用 pip3 安装了所有包。

原文由 Mayank Diwedi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
1 个回答

异常导入 UnrewindableBodyError 导入错误:无法导入名称 UnrewindableBodyError

上述错误可能是由于“ urllib3 ”包被破坏造成的。卸载/安装将解决问题:

 sudo pip uninstall urllib3
sudo pip install --upgrade urllib3

另一个问题可能是, urllib3 是通过 pip 安装的,而 请求 是通过 yum repo 安装的,反之亦然。在这种情况下,修复方法是完全删除这些库并通过相同的 repo 安装它。

我推荐 pip over yum 安装这两个包,因为它易于维护并提供更多控制。操作系统修补或 VM 维护活动等所需的任何进一步 yum 更新都不会影响通过 pip 安装的包。

首先通过 pip 和 yum 删除所有安装的“ urllib3 ”和“ requests ”:

 sudo pip uninstall urllib3 -y
sudo pip uninstall requests -y
sudo yum remove python-urllib3 -y
sudo yum remove python-requests -y

现在仅通过 pip 安装这两个包:

 sudo pip install --upgrade urllib3
sudo pip install --upgrade requests

仅通过 yum 安装这两个包:

 sudo yum install python-urllib3
sudo yum install python-requests

注意:当在操作系统级别发生 yum 更新时,始终使用虚拟环境以避免冲突。

原文由 Lalit Kumar B 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题