0

我在设置GitHub源码↓

https://github.com/priyankavergadia/Django-Dialogflow-GoogleVisionAPI

但是我在 [将应用部署到 App Engine 标准环境] 阶段遇到了麻烦。一目了然部署已经很好了。但是我正在尝试访问webservice,所以出现了[502 Bad Gateway]。

  • 在本地环境(运行 python manage.py runserver),这个程序运行良好。

请给我一些建议。

我的环境:

  • 视窗10
  • Python 3.7.3(默认,2019 年 3 月 27 日,17:13:21)[MSC v.1915 64 位 (AMD64)] :: Anaconda, Inc. on win32
  • django 2.2.4
  • MySQL二代5.7
  • mysql django

我搜索并尝试:

  1. 安装 mysqlclient 并卸载 PyMySQL
  2. 以各种模式重写 [import ~] 部分...

下面 Django setting.py 中的描述

# https://docs.djangoproject.com/en/2.1/ref/settings/#databases

# Install PyMySQL as mysqlclient/MySQLdb to use Django's mysqlclient adapter
# See https://docs.djangoproject.com/en/2.1/ref/databases/#mysql-db-api-drivers
# for more information
import MySQLdb as sql# noqa: 402

# [START db_setup]
if os.getenv('GAE_APPLICATION', None):
    # Running on production App Engine, so connect to Google Cloud SQL using
    # the unix socket at /cloudsql/<your-cloudsql-connection string>
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '/cloudsql/michatbot-250809:us-central1:polls-instance2',
            'USER': 'test',
            'PASSWORD': '',
            'NAME': 'polls',
        }
    }
else:
    # Running locally so connect to either a local MySQL instance or connect to
    # Cloud SQL via the proxy. To start the proxy via command line:

    #     $ cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME]=tcp:3306
    #
    # See https://cloud.google.com/sql/docs/mysql-connect-proxy
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '127.0.0.1',
            'PORT': '3306',
            'NAME': 'polls',
            'USER': 'test',
            'PASSWORD': '',
        }
    }
# [END db_setup]

eroor 登录下面的 Google App Engine

   textPayload: "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 1, in <module>
    from mysite.wsgi import application
  File "/srv/mysite/wsgi.py", line 16, in <module>
    application = get_wsgi_application()
  File "/env/lib/python3.7/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
    django.setup(set_prefix=False)
  File "/env/lib/python3.7/site-packages/django/__init__.py", line 19, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "/env/lib/python3.7/site-packages/django/conf/__init__.py", line 57, in __getattr__
    self._setup(name)
  File "/env/lib/python3.7/site-packages/django/conf/__init__.py", line 44, in _setup
    self._wrapped = Settings(settings_module)
  File "/env/lib/python3.7/site-packages/django/conf/__init__.py", line 107, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/opt/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/srv/mysite/settings.py", line 82, in <module>
    import MySQLdb as sql  # noqa: 402
ModuleNotFoundError: No module named 'MySQLdb'"
4

1 回答 1

0

根据您的 SO 和软件版本,社区在两个线程中找到了解决此错误的几种方法。你可以参考这些线程第二个,也可以参考这个讨论更多关于在 Windows 上的 Python 3 中连接 MySQL 的讨论。

确保遵循GAE 标准中有关 Python 3.7的文档。此外,GAE 对使用 Django 有一些特定的支持,我建议您阅读 Django Support文档Django App example

于 2019-09-18T01:03:07.437 回答