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

vnjpjtjt  于 2022-12-18  发布在  Docker
关注(0)|答案(8)|浏览(141)

**导入错误:无法从“botocore.docs.bcdoc”导入名称“docevents”

(/python3.7/站点软件包/botocore/文档/bcdoc/初始化.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中。
这是我的规范构建文件:构建规范-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)

代码生成工作正常,未做任何更改。只是停止工作。

3ks5zfa0

3ks5zfa01#

阅读这个GitHub issue #2596.我修正了我的错误。
就在PRE_BUILD部分之前,我在buildspec-cd.yml文件中添加了这一行:

pip 3安装--升级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}
      ...
zpqajqem

zpqajqem2#

对我来说,这是一个版本问题。所以,我修复了以下版本:
1.自动气象系统-客户界面/1.18.105
命令:sudo python3 -m pip3 install awscli==1.18.105
1.机器核心/1.17.28
命令:sudo python3 -m pip3 install botocore==1.17.28

1rhkuytd

1rhkuytd3#

在我的例子中,这个错误发生在ubuntu20.04上运行命令'aws --version'时。
解决办法是:

python3 -m pip install --upgrade pip
python3 -m pip uninstall awscli
python3 -m pip install awscli
sr4lhrrt

sr4lhrrt4#

在Ubuntu 20.04上出现相同错误,来自@vijay rajput的答案在开始时不起作用,通过将pip 3替换为pip -sudo python3 -m pip install awscli==1.18.105sudo python3 -m pip install botocore==1.17.28 Thx修复

bvpmtnay

bvpmtnay5#

pip卸载botocore为我工作

nzkunb0c

nzkunb0c6#

我在Ubuntu 20.04上也遇到了这个错误(虽然不是在CodeBuild中,但我运行的是aws lambda invoke)。安装AWS CLI v2(https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html)对我很有效:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
cgvd09ve

cgvd09ve7#

升级pip(不是必须的,但最好这样做,否则它会抛出一个警告消息,而运行第二个命令。
python3 -m pip install --upgrade pip
升级awscli(必要)
pip3 install --upgrade awscli
如果需要root用户权限,请在两个命令中添加sudo

llmtgqce

llmtgqce8#

对于任何偶然遇到这个问题的人,在Ubuntu 20.04中,如果您使用apt安装awscliapt install awscli),它将安装的版本为1.18.69,该版本与更高的botocore版本不兼容。要解决此问题,请通过pip而不是apt安装awscli(所以你可以安装最新的,截至2022年12月确实可以与1. 27. 30一起工作),或者降级botocore版本。最后一个可以与awscli版本1. 18. 69一起正常工作的botocore是1. 17. 63,其具有1.14.63的相应boto3版本。

相关问题