【问题标题】:Why am I getting the KeyError: 'CLOUD_STORAGE_BUCKET' from the default python-docs-samples/appengine/flexible/storage example为什么我从默认的 python-docs-samples/appengine/flexible/storage 示例中得到 KeyError: 'CLOUD_STORAGE_BUCKET'
【发布时间】:2017-08-16 03:08:34
【问题描述】:

我正在尝试将 Google Cloud Storage 与 Google App Engine 一起使用,目前正在查看“Using Cloud Storage”文档页面。它引用了“Quickstart for Python in the App Engine Flexible Environment”项目。我从 Github 中提取了“python-docs-samples/appengine/flexible/storage”,并按照快速入门中列出的有关 virtualenv 的说明进行操作。

当我运行 python main.py 时,它会导致错误:

File "main.py", line 27, in <module>
    CLOUD_STORAGE_BUCKET = os.environ['CLOUD_STORAGE_BUCKET']
  File [PATH_TO_FILE]/python-docs-samples/appengine/flexible/storage/env/bin/../lib/python2.7/Use
rDict.py", line 40, in __getitem__
    raise KeyError(key)
KeyError: 'CLOUD_STORAGE_BUCKET'

我确实在 app.yml 文件中提供了我的存储桶的名称

#[START env]
env_variables:
  CLOUD_STORAGE_BUCKET: jcolumbetestbucket
#[END env]

我有一些困惑的地方:

“快速入门”和“使用云存储”项目似乎都想使用 python 3,如 app.yml 文件中所列,但是当我运行 vurtualenv 命令时,它会安装 python2.7。我确实通过sudo pip3 install virtualenv 安装了python 3,并同时运行python3 main.pypython main.py,但仍然出现错误。

另外,这个特定的文档说使用python main.py 命令来运行本地开发服务器,而我最近几天一直在查看的其他文档说使用dev_appserver.py . 命令。

任何见解或帮助都会有所帮助,因为我已经尝试了几天。

【问题讨论】:

  • 问题现在解决了吗?

标签: python google-app-engine google-cloud-storage


【解决方案1】:

您可以在两种不同的环境中构建应用程序:标准环境和灵活环境。有关更多信息,请参阅Choosing an App Engine Environment

dev_appserver.py 是一个沙箱,用于测试适用于标准环境的应用程序,它可以毫无问题地从 app.yaml 加载环境变量。

您使用的示例适用于柔性环境。根据documentation 的说法,有多种运行方式,但似乎没有一种能够在本地加载环境变量。

您有两个选择:要么坚持标准环境(如果它满足您的需求),要么硬编码您的环境变量以进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多