Google App Engine - Python 3 - ModuleNotFoundError: нет модуля с именем «pytz»

1

Я пытаюсь установить в Google App Engine стандартную среду Python37. У меня была предыдущая версия, которая не использовала pytz или запросы, однако использовала внешние библиотеки python.

После добавления этих зависимостей и развертывания, а затем просмотра веб-сайта я получаю 500 ошибок. Глядя на журналы, он говорит:

ModuleNotFoundError: Нет модуля с именем 'pytz'
ModuleNotFoundError: нет модуля с именем "запросы"

Документы говорят, что зависимости для приложений Python объявляются в стандартном файле требований.txt. Что я сделал.

Содержание требования.txt

нажмите == 6.7
Колба == 1.0.2
GeoJSON == 2.4.0
itsdangerous == 0,24
Jinja2 == 2,10
MarkupSafe == 1,0
PKG-ресурсы == 0.0.0
PyMongo == 3.7.1
pytz == 2018,5
Werkzeug == 0.14.1

Мой app.yaml

runtime: python37

handlers:
- url: /static
  static_dir: static

- url: /.*
  script: auto

Начало main.py

import json
import time
import pytz
import requests   

Ошибка из трассы стека:

Traceback (most recent call last): 
File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, 
in spawn_worker 
    worker.init_process() 
File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", 
line 104, in init_process 
    super(ThreadWorker, self).init_process() 
File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 
129, in init_process
    self.load_wsgi() 
File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 
138, in load_wsgi 
    self.wsgi = self.app.wsgi() 
File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, 
in wsgi 
    self.callable = self.load() 
File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 
52, in load return 
    self.load_wsgiapp() 
File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 
41, in load_wsgiapp 
    return util.import_app(self.app_uri) 
File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 350, in 
import_app 
    __import__(module) 
File "/srv/main.py", line 4, in <module> 
    import pytz 
ModuleNotFoundError: No module named 'pytz''enter code here'

Я установил и протестировал эти модули локально на GAE и подтвердил, что они работают. Ошибки приходят только при развертывании. Будем очень благодарны за любые предложения по устранению этих ошибок и развертыванию.

редактировать:

Я обновил свой файл требований.txt, чтобы добавлять запросы и удалять pkg-ресурсы, поскольку они начали давать ошибки при сборке. Содержание требования.txt

нажмите == 6.7
Колба == 1.0.2
GeoJSON == 2.4.0
itsdangerous == 0,24
Jinja2 == 2,10
MarkupSafe == 1,0
PyMongo == 3.7.1
pytz == 2018,5
Запросы == 2.18.4
Werkzeug == 0.14.1

  • 1
    Вы еще не добавили requests в requirements.txt
  • 0
    Извините, я использовал замораживание пипса неправильного env. Я добавил запросы, и это решило эту проблему, однако ошибка pytz остается. Я отредактирую пост, чтобы упомянуть об этом
Теги:
google-app-engine
python-import
pytz

1 ответ

0

Я смог развернуть следующее приложение:

В app.yaml:

runtime: python37

handlers:
- url: /static
  static_dir: static

- url: /.*
  script: auto

В requirements.txt:

click==6.7
Flask==1.0.2
geojson==2.4.0
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
pymongo==3.7.1
pytz==2018.5
requests==2.18.4
Werkzeug==0.14.1

В main.py:

from flask import Flask

import pytz

app = Flask(__name__)


@app.route('/')
def hello():
    """Return a friendly HTTP greeting."""
    return pytz.VERSION

Это успешно возвращает версию pytz.

Вы уверены, что новый файл требований содержит pytz и развертывается? Вы можете проверить, выполнив навигацию в Облачной консоли Google, чтобы:

Ресурсы > App Engine > Службы, а затем в строке со службой Diagnose > Tools > Source. Оттуда вы можете найти файл requirements.txt и убедиться, что он содержит pytz==2018.5.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню