"ImportError: нет модуля с именем pkg_resources" при импорте google.cloud.datastore
Я пытаюсь использовать хранилище данных Google Cloud, но при импорте 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 из виртуального ENV и import pkg_resources
работает нормально. Когда я запускаю сервер приложений Google Engine, выполнив dev_appserver app.yaml
все работает нормально, пока я не получаю доступ к странице, которая активирует обработчик, который импортирует хранилище данных, затем я получаю эту ошибку.
Ни одна из подобных публикаций об ошибке импорта 'pkg_resources` не была полезной.
Если есть какая-либо другая информация, которую я могу предоставить, которая может помочь, пожалуйста, дайте мне знать. Спасибо!
1 ответ
В стандартной среде вам нужно установить все ваши зависимости внутри вашего приложения. См. Использование сторонних библиотек.
Независимо от того, что вы установили в локальной среде (виртуальной или нет), не имеет значения, GAE не знает, как их использовать, и ваше приложение может не работать должным образом локально и определенно не будет работать при развертывании в GAE.
Трассировка указывает, что вы загружаете библиотеку хранилища данных из виртуальной среды, а не из своего приложения, поэтому, скорее всего, она не работает:
.../env/local/lib/python2.7/site-packages/google/cloud/datastore/__init__.py
Вам нужно исправить установку зависимостей вашего приложения.
Это обсуждение также может быть интересным: нет модуля с именами предупреждений при локальном запуске GAE в virtualenv