导入错误:无法从 AWS CodeBuild 中的“botocore.docs.bcdoc”导入名称“docevents”

Jua*_*nRO 20 python amazon-web-services docker aws-codebuild

导入错误:无法从“botocore.docs.bcdoc”
(/python3.7/site-packages/botocore/docs/bcdoc/ init .py)导入名称“docevents”

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
Run Code Online (Sandbox Code Playgroud)

失败发生在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)
Run Code Online (Sandbox Code Playgroud)

代码构建工作正常,没有任何变化。只停止工作。

Jua*_*nRO 59

阅读此GitHub 问题 #2596。我修正了我的错误。

就在 PRE_BUILD 部分之前,我将这一行添加到我的 buildspec-cd.yml 文件中:

pip3 install --upgrade awscli

install:
    commands:
      - pip3 install awsebcli --upgrade
      - eb --version
      - pip3 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}
      ...
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,在升级 awscli 之前我还必须“pip3 install --upgrade pip” (5认同)

小智 9

就我而言,在 ubuntu 20.04 上运行命令“aws --version”时会发生此错误。

解决方案是:

python3 -m pip install --upgrade pip
python3 -m pip uninstall awscli
python3 -m pip install awscli
Run Code Online (Sandbox Code Playgroud)


vij*_*put 6

对我来说是版本问题。所以,我用以下版本修复了它:

  1. aws-cli/1.18.105

命令: sudo python3 -m pip3 install awscli==1.18.105

  1. botocore/1.17.28

命令: sudo python3 -m pip3 install botocore==1.17.28

  • 无论涉及谁:请使用 pip 或 pip3 &lt;&lt; 无论您在系统中配置什么 (2认同)