certbot 和 awscli 需要不同版本的 botocore

certbot 和 awscli 需要不同版本的 botocore

我有一个小脚本,每当需要续订时都会生成新的 Let's Encrypt 证书,然后将新证书导入到我们的 AWS 帐户,以便我们可以使用它们将 Cloudfront 请求签名到我们的自定义子域。

我在我们的任何其他服务器上都没有遇到过这个问题,但是当我按照此处的说明安装 certbot 时https://certbot.eff.org/all-instructions/#debian-9-stretch-apache,我可以成功生成证书。

然后,当我使用 awscli 安装时pip install awscli --upgrade --user,我还可以运行 aws 命令来导入我的证书。

但是当我返回并运行 certbot 续订时,我收到此错误

发生意外错误:ContextualVersionConflict: (botocore 1.7.47 (/root/.local/lib/python2.7/site-packages), Requirement.parse('botocore<1.6.0,>=1.5.0'), set (['boto3']))

如果我强制将 botocore 安装到版本 1.5.95(显然是 certbot 的最高支持版本),那么 certbot 工作正常,但我从 awscli 收到此错误

回溯(最近一次调用最后一次):文件“/root/.local/bin/aws”,第 19 行,导入 awscli.clidriver 文件“/root/.local/lib/python2.7/site-packages/awscli/clidriver .py”,第 24 行,来自 botocore.history import get_global_history_recorder ImportError:没有名为历史的模块

这是怎么回事?为什么这在另一台版本为 1.7.47 的 botocore 服务器上可以工作,但在这台服务器上却不行?

答案1

我有类似的问题。

sudo certbot certonly  --dns-route53  -d example.com
An unexpected error occurred:
VersionConflict: (botocore 1.10.58 (/usr/lib/python2.7/site-packages), 
Requirement.parse('botocore>=1.6.0,<1.7.0'))

你的帖子帮助我找到了https://github.com/venth/aws-adfs/issues/52建议使用 pip uninstall botocore boto3 && pip install boto3 来解决该问题。

sudo pip uninstall botocore boto3 && sudo pip install boto3 

解决了我的设备上的问题。

相关内容