如何解决ImportError:无法从AWS CodeBuild中的“ botocore.docs.bcdoc”导入名称“ docevents”
导入错误:无法从“ botocore.docs.bcdoc”导入名称“ docevents”
(/python3.7/site-packages/botocore/docs/bcdoc/init.py)
Traceback (most recent call last):
File "/root/.pyenv/versions/3.7.6/bin/aws",line 19,in <module>
import awscli.clidriver
File "/root/.pyenv/versions/3.7.6/lib/python3.7/site-packages/awscli/clidriver.py",line 36,in <module>
from awscli.help import ProviderHelpCommand
File "/root/.pyenv/versions/3.7.6/lib/python3.7/site-packages/awscli/help.py",line 23,in <module>
from botocore.docs.bcdoc import docevents
ImportError: cannot import name 'docevents' from 'botocore.docs.bcdoc' (/root/.pyenv/versions/3.7.6/lib/python3.7/site-packages/botocore/docs/bcdoc/__init__.py)
[Container] 2020/10/29 16:48:39 Command did not exit successfully aws --version exit status 1
失败发生在 PRE_BUILD 中。
这是我的规格构建文件: buildspec-cd.yml
pre_build:
commands:
- AWS_REGION=${AWS_DEFAULT_REGION}
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
- IMAGE_VERSION=${COMMIT_HASH}
- REPOSITORY_URI=${CONTAINER_REGISTRY}/${APPLICATION_NAME}
- aws --version
- echo Logging in to Amazon ECR...
- $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email)
代码构建正常工作,没有任何更改。 只是停止了工作。
解决方法
阅读此GitHub issue #2596.后,我修复了错误。
就在PRE_BUILD部分之前,我将此行添加到了buildspec-cd.yml文件中:
pip install --upgrade awscli
install:
commands:
- pip3 install awsebcli --upgrade
- eb --version
- pip install --upgrade awscli
pre_build:
commands:
- AWS_REGION=${AWS_DEFAULT_REGION}
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
- IMAGE_VERSION=${COMMIT_HASH}
...
,
对我来说这是一个版本问题。所以,我用以下版本修复了它:
- aws-cli/1.18.105
命令:T
- botocore/1.17.28
命令:sudo python3 -m pip3 install awscli==1.18.105
在 Ubuntu 20.04 上遇到同样的错误,@vijay rajput 的回答一开始不起作用,通过用 pip 替换 pip3 修复 - sudo python3 -m pip install awscli==1.18.105
和 sudo python3 -m pip install botocore==1.17.28
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。