【问题标题】:Google App Engine, are neither urllib3 nor requests supported?Google App Engine,不支持 urllib3 和 requests 吗?
【发布时间】:2019-08-07 21:37:30
【问题描述】:

我在部署 Google 应用时不断收到以下错误:

ERROR: (gcloud.app.deploy) 解析文件时出错: [/Users/app.yaml]不支持库“requests”

我已将其更改为 urllib3,但仍然出现相同的错误。以下是app.yaml:

# entrypoint: main.py
# env: flex
# runtime: python

runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /static
  static_dir: static
- url: /.*
  script: main.app

libraries:
  - name: ssl
    version: latest
  - name: lxml
    version: latest
  - name: urllib3
    version: latest
  - name: flask
    version: latest

以及库的调用:

# from requests import get as rget 
from urllib3 import PoolManager
http = PoolManager()
query = some_query
# page = rget(query)
page = http.request('GET',query)

我似乎无法弄清楚问题可能是什么。我已经看到了以前的堆栈溢出答案,这些答案要求我在 lib 中进行 pip install,并将其添加到requirement.txt 中,但这些似乎都没有任何区别。

是否有任何其他库完全一样但谷歌应用引擎原生支持?

【问题讨论】:

    标签: python python-2.7 google-app-engine google-cloud-platform


    【解决方案1】:

    App Engine 在标准 Python 2.7 环境中以两种方式支持第三方库。

    • Built-in libraries:如果declared 在您的app.yaml 文件中,这些会在云中自动启用。您可能需要使用 pip to make them available in the dev server 在本地安装它们。
    • 其他第三方库:这些库必须pip 安装到应用程序的文件夹中,并作为部署的一部分上传。该文件夹必须是您的appengine_config.py 中的declared。这些库不得app.yaml 中声明,否则您会收到您报告的错误。

    requestsurllib3 不包含在内置库中,因此您需要:

    1. Set up vendored libraries folder 在 appengine_config.py 中
    2. pip install -t <your-lib-folder> requests(我相信urllib3 是作为请求的一部分安装的)。
    3. 确保在部署到云时上传<your-lib-folder>

    【讨论】:

      猜你喜欢
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      相关资源
      最近更新 更多