certbot renew时,突然出错:
ImportError: cannot import name UnrewindableBodyError
尝试安装更新:
pip install requests urllib3 pyOpenSSL --force --upgrade
安装后,依然有错:
pkg_resources.DistributionNotFound: The 'urllib3<1.23,>=1.21.1' distribution was not found and is required by requests
从提示看是urllib3版本不满足要求导致的问题,尝试安装最新版:
pip install urllib3
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Requirement already satisfied: urllib3 in /usr/local/lib/python3.9/site-packages (1.21.1)
安装完最新的1.21.1 错误提示依然,说明还需要处理路径的问题。
首先需要找到的是目前到底是哪个版本,哪个路径?
find / -name "urllib3-*"
/usr/lib/python2.7/site-packages/urllib3-1.10.2-py2.7.egg-info
/usr/local/lib/python3.6/site-packages/urllib3-1.23-py3.6.egg
/usr/local/lib/python3.6/site-packages/urllib3-1.21.1-py3.6.egg
/usr/local/lib/python3.6/site-packages/urllib3-1.25.11.dist-info
/usr/local/lib/python3.9/site-packages/urllib3-1.21.1.dist-info
从上面的后缀看基本都是大于1.21的,那么当前系统索引的应该就是 urllib3-1.10.2 这个版本了。
解决
问题分析清楚了,解决就很简单了。
将前面安装时提示的最新的1.21.1对应的相关文件 手动拷贝到 1.10.2 对应的路径就好了。
分别拷贝 urllib3 和 urllib3-1.21.1.dist-info 两个目录
再去测试 certbot renew, 一切恢复正常