部署Google应用程序时,我不断收到以下错误消息:
错误:(gcloud.app.deploy)解析文件时发生错误: [/Users/app.yaml]不支持“请求”库
我将其更改为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安装,并将其也添加到require.txt中,但是这些似乎都没有任何作用。
是否还有其他功能完全相同但由Google App Engine本地支持的库?
答案 0 :(得分:0)
App Engine在标准Python 2.7环境中以两种方式支持第三方库。
app.yaml
文件中有declared,则会在云中自动启用这些功能。您可能需要使用pip
to make them available in the dev server在本地安装它们。pip
安装到应用程序的文件夹中,并作为部署的一部分上载。该文件夹必须位于appengine_config.py
中的declared中。这些库不能在app.yaml
中声明,否则您将得到报告的错误。 requests
和urllib3
未包含在内置库中,因此您需要:
pip install -t <your-lib-folder> requests
(我相信urllib3
是作为请求的一部分安装的。)<your-lib-folder>
已上传。