首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python urllib3错误- ImportError:无法导入名称UnrewindableBodyError

Python urllib3错误- ImportError:无法导入名称UnrewindableBodyError
EN

Stack Overflow用户
提问于 2018-10-08 08:31:27
回答 5查看 26.9K关注 0票数 15

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

代码语言:javascript
复制
activate = "/home/myserver/schedule_py3/bin/activate_this.py"
exec(open(activate).read())

激活虚拟环境(其中包含python3和运行脚本所需的包)之后,我尝试将导入请求显示为:-

代码语言:javascript
复制
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。有人能告诉我哪里错了吗?

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

EN

回答 5

Stack Overflow用户

发布于 2019-08-22 10:28:43

异常导入UnrewindableBodyError ImportError:无法导入名称UnrewindableBodyError

以上错误可能是由于"urllib3“包被损坏造成的。卸载/安装将修复以下问题:

代码语言:javascript
复制
sudo pip uninstall urllib3
sudo pip install --upgrade urllib3

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

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

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

代码语言:javascript
复制
sudo pip uninstall urllib3 -y
sudo pip uninstall requests -y
sudo yum remove python-urllib3 -y
sudo yum remove python-requests -y

现在,只能通过pip安装这两个包:

代码语言:javascript
复制
sudo pip install --upgrade urllib3
sudo pip install --upgrade requests

仅通过yum安装两个软件包:

代码语言:javascript
复制
sudo yum install python-urllib3
sudo yum install python-requests

注意事项:始终使用虚拟环境来避免在操作系统级别上进行yum更新时发生冲突。

票数 29
EN

Stack Overflow用户

发布于 2018-10-08 08:38:32

您可能想看看激活虚拟环境的方法。

一个很好的例子可以找到here

这方面的一个例子是:

代码语言:javascript
复制
ex- 2 4 5 10 * /home/myserver/schedule_py3/<PATH TO VIRTUALENV PYTHON> <FULL PATH TO SCRIPT>mayank/exp/test.py
票数 0
EN

Stack Overflow用户

发布于 2018-10-08 08:40:02

因为您使用的是系统python,而不是虚拟化。首先使用activate,然后使用env文件夹中的python。

代码语言:javascript
复制
2 4 5 10 * source /home/myserver/schedule_py3/bin/activate_this.py && python something_else.py
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52698283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档