2

我正在尝试使用 Google Cloud Datastore,但导入 google.cloud.datastore 会出现 ImportError:

ERROR    2018-03-13 19:28:29,013 wsgi.py:263] 
Traceback (most recent call last):
  File "/home/<user>/Software/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/home/<user>/Software/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/home/<user>/Software/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/home/<user>/Projects/<my_project>/main.py", line 1, in <module>
    from my_project import app
  File "/home/<user>/Projects/<my_project>/<my_project>/__init__.py", line 2, in <module>
    from my_project.submit.controllers import submit
  File "/home/<user>/Projects/<my_project>/<my_project>/submit/controllers.py", line 6, in <module>
    from . import model_datastore
  File "/home/<user>/Projects/<my_project>/<my_project>/submit/model_datastore.py", line 2, in <module>
    from google.cloud import datastore
  File "/home/<user>/Projects/<my_project>/env/local/lib/python2.7/site-packages/google/cloud/datastore/__init__.py", line 57, in <module>
    from pkg_resources import get_distribution
ImportError: No module named pkg_resources

我在 Linux Mint 上尝试运行 Google App Engine 本地开发服务器。

我正在使用虚拟环境。setuptools 和 pkg_resources 都在虚拟环境中安装和更新。当我从虚拟环境和 输入 python cmd 行解释器时import pkg_resources,它工作正常。当我运行 google app engine dev server 时dev_appserver app.yaml,一切正常,直到我访问激活导入数据存储的处理程序的页面,然后我收到此错误。

关于“pkg_resources”导入错误的其他类似帖子都没有帮助。

如果我可以提供任何其他信息对您有帮助,请告诉我。谢谢!

4

1 回答 1

1

在标准环境中,您需要在应用程序中安装所有依赖项。请参阅使用第三方库

无论您在本地环境(虚拟与否)中安装了任何东西,GAE 都不知道如何使用它们,您的应用程序可能无法在本地正常运行,并且在部署到 GAE 时肯定无法运行。

您的回溯表明您正在从您的虚拟环境加载数据存储库,而不是从您的应用程序,这很可能是它不起作用的原因:

.../env/local/lib/python2.7/site-packages/google/cloud/datastore/__init__.py

您需要修复您的应用程序依赖项安装。

这个讨论可能也很有趣:No module named warnings when started GAE inside virtualenv local

于 2018-03-13T22:39:07.460 回答