"ImportError: No module named pkg_resources" when importing google.cloud.datastore

"ImportError: No module named pkg_resources" when importing google.cloud.datastore

我正在尝试使用 Google 云数据存储,但导入 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 都在虚拟环境中安装和更新。当我从虚拟环境和 import pkg_resources 输入 python cmd 行解释器时,它工作正常。当我通过 dev_appserver app.yaml 运行 google App Engine 开发服务器时,一切正常,直到我访问激活导入数据存储的处理程序的页面,然后我收到此错误。

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

如果我可以提供任何其他有用的信息,请告诉我。谢谢!

在标准环境中,您需要在应用程序中安装所有依赖项。参见 Using third-party libraries

无论您在本地环境中安装了什么(无论是虚拟的还是非虚拟的)都没有关系,GAE 不知道如何使用这些并且您的应用程序 可能 无法在本地正常工作并且在 GAE 上部署时肯定不会工作。

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

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

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

这个讨论可能也很有趣: