微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Travis -Gcloud 崩溃AttributeError:'_RSAPrivateKey' 对象没有属性 'sign'

如何解决Travis -Gcloud 崩溃AttributeError:'_RSAPrivateKey' 对象没有属性 'sign'

更新


这是 travis 文件的一部分

 before_install:
      #openssl stuff regarding credentials.tar.gz
       
      - if [ ! -d "${GAE_PYTHONPATH}" ]; then python scripts/fetch_gae_sdk.py $(dirname
        "${GAE_PYTHONPATH}"); fi
      - if [ ! -d $HOME/google-cloud-sdk/bin ]; then rm -rf $HOME/google-cloud-sdk; curl
        https://sdk.cloud.google.com | bash; fi
      - tar -xzf credentials.tar.gz
 - "$HOME/google-cloud-sdk/bin/gcloud  components update"
  -  "pip install -U cryptography"
      - "$HOME/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file travis-credentials.json" # ERROR HAPPENS HERE
#ERROR IS =  Gcloud crashed (AttributeError): '_RSAPrivateKey' object has no attribute 'sign'
      - "$HOME/google-cloud-sdk/bin/gcloud auth configure-docker"

这是我无法理解的。我会假设它是否与 gcloud 的突然版本升级有关并且它与 crpyotgraphy 不兼容,那么很多应用程序都会失败,我的修复尝试会修复它。但这在我收到上述电子邮件之前一直有效,所以我认为在那封电子邮件之后有些事情搞砸了,但这只是一个疯狂的猜测。

所有的 Travis 文件

language: python
python: 2.7
branches:
  only:
    - master
services:
  - docker
cache:
  directories:
    - "$HOME/google-cloud-sdk/"
env:
  - GAE_PYTHONPATH=${HOME}/.cache/google_appengine PATH=$PATH:${HOME}/google-cloud-sdk/bin
    PYTHONPATH=${PYTHONPATH}:${GAE_PYTHONPATH} CLOUDSDK_CORE_disABLE_PROMPTS=1
before_install:
  #unrelated stuff
  - if [ ! -d "${GAE_PYTHONPATH}" ]; then python scripts/fetch_gae_sdk.py $(dirname
    "${GAE_PYTHONPATH}"); fi
  - if [ ! -d $HOME/google-cloud-sdk/bin ]; then rm -rf $HOME/google-cloud-sdk; curl
    https://sdk.cloud.google.com | bash; fi
  - tar -xzf credentials.tar.gz
 - "$HOME/google-cloud-sdk/bin/gcloud  components update"
  -  "pip install -U cryptography"
  - "$HOME/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file travis-credentials.json"
  - "$HOME/google-cloud-sdk/bin/gcloud auth configure-docker"
install:
  #push image to gcr
script:
  - echo "done"

此处question 提出了同样的问题,但更新加密模块并没有解决问题(我尝试了 3 个不同版本,从最新版本到答案中列出的版本 -> 2.6.1)。 3 天前,我收到了一封来自谷歌的电子邮件内容如下。

您好 Cloud Shell 用户

自从您从 Google 打开 Cloud Shell 以来已经超过 120 天 云平台控制台。 7 天内,您的 Cloud Shell 主目录 将自动安排删除

要保留您的 Cloud Shell 主目录及其数据,只需登录并 打开 Cloud Shell。

我打开了 shell 以使其保持激活状态,但是当我尝试使用 travis 部署我的 django 应用程序时,当我尝试执行 gcloud 命令时出现以下错误

 $HOME/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file travis-credentials.json
ERROR: gcloud crashed (AttributeError): '_RSAPrivateKey' object has no attribute 'sign'

我尝试了 2.6.1、2.8(我以前的版本)、3.4.1(最新版本),但都没有奏效。关于如何解决这个问题的任何想法?我的最后一次构建是一个月前,它在没有更改任何配置的情况下成功运行

解决方法

显然,这个问题与我使用的 gcloud 版本有关。我总是获取最新版本(目前是 331.0.0)。虽然不理想,但将 gcloud SDK 降级到 330.0.0 解决了该问题。

gcloud  components update --version 330.0.0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。