我正在尝试在Google App Engine中导入requests_toolbelt程序包,但始终出现导入错误。已经在https://toolbelt.readthedocs.io/en/latest/adapters.html#appengineadapte和https://cloud.google.com/appengine/docs/standard/python/issue-requests处进行了检查,也会给出相同的错误。
它在本地运行良好,但在部署后出现错误: ImportError:没有名为requests_toolbelt.adapters的模块
我有这个:
import requests
from requests_toolbelt.adapters import appengine
if not os.environ.get('SERVER_SOFTWARE', '').startswith('Google App Engine'):
appengine.monkeypatch()
requirements.txt具有
requests
requests_toolbelt
答案 0 :(得分:2)
由于您是在标准环境中使用Python2.7的,因此requests_toolbelt
文件中的requirements.txt
库不足以将其上传到App Engine,因为它不是{{ 3}}。
要添加它,您可以按照Built-in Third-party Libraries中所述的步骤进行操作:
运行以下命令:
pip install -t lib -r requirements.txt
这会将所有软件包安装到本地环境,然后将它们复制到lib
文件夹中。 official documentation。
创建以下文件,名为appengine_config.py
:
from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')
请注意,此文件必须与app.yaml
位于同一根路径中,并且'lib'
字符串代表从该根目录到您在上一点中创建的文件夹的路径。
使用gcloud app deploy
完成后,您应该能够运行应用程序而不会出现与库相关的错误。
请注意,这些步骤仅是标准App Engine环境中Python 2.7中的要求。在Python3或Flexible中,在requirements.txt
文件中列出库就足够了。
答案 1 :(得分:0)