【发布时间】:2014-07-04 03:55:12
【问题描述】:
我正在尝试配置 notification for a Google Cloud Storage bucket object change,但是在尝试使 gsutil 通过此命令使用服务帐户时遇到了问题。
gcloud auth activate-service-account service-account-email --key-file path/to/key.p12
我在命令行中得到的错误是:
ERROR: (gcloud.auth.activate-service-account) PyOpenSSL is not available. If you have already installed PyOpenSSL, you will need to enable site packages by setting the environment variable CLOUDSDK_PYTHON_SITEPACKAGES to 1. If that does not work, See https://developers.google.com/cloud/sdk/crypto for details.
我关注了this instructions to get pyOpenSSL。如果我向 pip 询问该软件包,它会告诉我它已安装
$ pip show pyopenssl
---
Name: pyOpenSSL
Version: 0.14
Location: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Requires: cryptography, six
如果我调用 env 命令,我也会看到环境变量
$ env
...
CLOUDSDK_PYTHON_SITEPACKAGES=1
我做错了吗?
【问题讨论】:
-
您能否验证 OpenSSL 是否可用?尝试在 python 提示符中导入 OpenSSL,如果可行,请在该 python 提示符中尝试“$ CLOUDSDK_PYTHON_SITEPACKAGES=1 gcloud interactive”和“import OpenSSL”。如果它在第一次成功而在第二次失败,这将有助于缩小问题的范围。如果第一次失败,则说明 PyOpenSSL 没有正确安装。
-
不,没有用。 >>> import OpenSSL Traceback(最近一次调用最后):文件“
”,第 1 行,在 ImportError: No module named OpenSSL >>> 中。我当然在 Mac OSX 上使用 pip 安装 PyOpenSSL 时遇到了问题,但我认为现在一切正常。 -
我的建议是使用 virtualenv,并且只使用 pip 将东西安装到 virtualenv 中。在 virtualenv 中运行时不会出现任何 -S 问题(从 virtualenv 运行 gcloud 时从不提供 -S)。
标签: python google-cloud-storage google-cloud-platform gcloud