我将cronjob设置为在特定时间调用我的脚本(ex-2 4 5 10 * python3 mayank/exp/test.py)。当调用我的 test.py 时,我将在test.py脚本中激活虚拟服务器,如下所示。
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。有人能告诉我哪里错了吗?
Note- -我已经在虚拟环境中使用pip3安装了所有的软件包。
发布于 2019-08-22 10:28:43
异常导入UnrewindableBodyError ImportError:无法导入名称UnrewindableBodyError
以上错误可能是由于"urllib3“包被损坏造成的。卸载/安装将修复以下问题:
sudo pip uninstall urllib3
sudo pip install --upgrade urllib3另一个问题可能是,urllib3是通过pip安装的,requests是通过yum回购安装的,反之亦然。在这种情况下,修复是完全删除这些库,并通过相同的回购安装它。
,我推荐pip而不是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更新时发生冲突。
发布于 2018-10-08 08:38:32
您可能想看看激活虚拟环境的方法。
一个很好的例子可以找到here
这方面的一个例子是:
ex- 2 4 5 10 * /home/myserver/schedule_py3/<PATH TO VIRTUALENV PYTHON> <FULL PATH TO SCRIPT>mayank/exp/test.py发布于 2018-10-08 08:40:02
因为您使用的是系统python,而不是虚拟化。首先使用activate,然后使用env文件夹中的python。
2 4 5 10 * source /home/myserver/schedule_py3/bin/activate_this.py && python something_else.pyhttps://stackoverflow.com/questions/52698283
复制相似问题