Как установить модуль googlemaps в Google App Engine

#python #google-maps #google-app-engine #google-cloud-platform

#python #google-карты #google-app-engine #google-облачная платформа

Вопрос:

Я использую Python3.7 среду выполнения и установил googlemaps модуль в lib папку с помощью команды

 $ python -m pip --upgrade install -t lib/ googlemaps
  

На местном уровне это работало нормально. Я развернул свой проект flask в Google Cloud, где я определил поставщика в appengine_config.py следующим образом:

 import os
from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')
vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib'))
  

Но когда проект развертывается на движке Google, я получаю эту ошибку:

  import googlemaps  ModuleNotFoundError: No module named 'googlemaps'
  

Пожалуйста, любая помощь?

Комментарии:

1. Какую среду выполнения вы используете, Python 2.7 или Python 3.7?

2. @DustinIngram 3.7

3. есть ли в вашей lib папке __init__.py

4. готово! хотя это решило вашу проблему, я рекомендовал настроить ваши зависимости так, как объяснил Дастин в своем ответе

5. Да, это не рекомендуемый способ установки зависимостей в среде выполнения 3.7. Тем не менее, он идеально подходит для 2.7!

Ответ №1:

Python 3.7 — это «идиоматическая» среда выполнения Python. Среди прочего, это означает, что вам не нужно связывать свои зависимости с вашим приложением, как это приходилось делать для среды выполнения 2.7.

Вместо этого вы должны указать requirements.txt файл с именем пакета в нем, например:

 googlemaps==3.0.2
  

И эта зависимость будет установлена при следующем развертывании вашего приложения. Более подробную информацию смотрите в разделе «Указание зависимостей«.

Ответ №2:

Есть ли в вашей lib папке __init__.py ?

Он необходим, поскольку lib папка обрабатывается как пакет

https://docs.python.org/3/tutorial/modules.html#packages

Но если вы можете, вам следует использовать requirements.txt как рекомендовал @Dustin. Я работаю в среде python2 годами, и моя lib папка превратилась в громоздкий беспорядок.