使用dev_appserver.py

时间:2017-09-25 15:48:40

标签: python google-app-engine

在Ubuntu 16.04上,我突然从本地GAE开发服务器获得导入错误。

本地开发服务器启动,包括管理界面,但不再加载应用程序。

同一台机器上的同一个库的本机python导入(在本例中为#34;来自google.cloud导入数据存储区")可以正常工作。

GAE标准应用确实在部署时运行,但开发只是有点挑战。

google-cloud的版本是0.27.0 gcloud组件是172.0.1 python是Anaconda 2.7.13 GAE是标准的

我已经向我的中等能力证实了$ PATH对于所有已命名的库都是正确的。

我已删除并重新添加了所有已命名的库。

cachetools(2.0.1)应该注意,它是作为google云库的依赖项安装的,所以我不认为这可以通过requirements.txt或" library"来解决。在app.yaml。

我最近经历了一个删除和添加库来修复apache_beam 2.0.1问题的循环,所以我可能已经搞砸了别的东西,但我不知道在哪里看。

建议深表感谢。完全追溯(来自管理员,与应用程序相同):

Traceback (most recent call last):
      File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/request_handler.py", line 232, in handle_interactive_request
    exec(compiled_code, self._command_globals)
  File "<string>", line 1, in <module>
  File "/home/brian/anaconda3/lib/python2.7/site-packages/google/cloud/datastore/__init__.py", line 61, in <module>
    from google.cloud.datastore.client import Client
  File "/home/brian/anaconda3/lib/python2.7/site-packages/google/cloud/datastore/client.py", line 23, in <module>
    from google.cloud.client import ClientWithProject
  File "/home/brian/anaconda3/lib/python2.7/site-packages/google/cloud/client.py", line 27, in <module>
    from google.oauth2 import service_account
  File "/home/brian/anaconda3/lib/python2.7/site-packages/google/oauth2/service_account.py", line 79, in <module>
    from google.auth import jwt
  File "/home/brian/anaconda3/lib/python2.7/site-packages/google/auth/jwt.py", line 49, in <module>
    import cachetools
ImportError: No module named cachetools

2 个答案:

答案 0 :(得分:0)

stacktrace表示您正在从本地系统安装(site-packages目录)运行库,而不是从您的应用程序运行。

对于标准的env GAE应用,您需要在应用中安装依赖项,它们将与您的应用代码一起上传到GAE。

更具体地说,您需要使用-t <your_app_lib_dir>选项进行pip安装。来自Installing a third-party library

  
      
  1. 使用带有-t <directory>标志的pip(版本6或更高版本)将库复制到您之前创建的文件夹中   步。例如:

    pip install -t lib/ <library_name>
    
  2.   

答案 1 :(得分:0)

我通过app根目录中的requirements.txt文件解决了我的问题。

我有:google-cloud == 0.22.0

并将其更改为:google-cloud == 0.27.0

修复了它。