【;Django×;谷歌应用程序引擎&x3011;没有名为';MySQLdb' ;部署时
我正在设置GitHub源代码↓ 但我在[将应用程序部署到应用程序引擎标准环境]阶段遇到了麻烦。 乍一看,部署做得很好。但我正在尝试访问webservice,所以出现了[502坏网关]【;Django×;谷歌应用程序引擎&x3011;没有名为';MySQLdb' ;部署时,django,google-app-engine,dialogflow-es,Django,Google App Engine,Dialogflow Es,我正在设置GitHub源代码↓ 但我在[将应用程序部署到应用程序引擎标准环境]阶段遇到了麻烦。 乍一看,部署做得很好。但我正在尝试访问webservice,所以出现了[502坏网关] 在本地环境中(运行python manage.py runserver),该程序运行良好 请给我一些建议 我的环境: 窗口10 Python 3.7.3(默认值,2019年3月27日,17:13:21)[MSC v.1915 64位(AMD64)]::win32上的Anaconda,Inc django
- 在本地环境中(运行python manage.py runserver),该程序运行良好
- 窗口10
- Python 3.7.3(默认值,2019年3月27日,17:13:21)[MSC v.1915 64位(AMD64)]::win32上的Anaconda,Inc
- django 2.2.4
- MySQL第二代5.7
- django
# 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]
#https://docs.djangoproject.com/en/2.1/ref/settings/#databases
#将PyMySQL安装为mysqlclient/MySQLdb以使用Django的mysqlclient适配器
#看https://docs.djangoproject.com/en/2.1/ref/databases/#mysql-db api驱动程序
#更多信息
将MySQLdb作为sql#noqa:402导入
#[启动数据库设置]
如果os.getenv('GAE_应用程序',无):
#在生产应用程序引擎上运行,因此使用SQL连接到Google Cloud
#位于/cloudsql的unix套接字/
数据库={
“默认值”:{
'ENGINE':'django.db.backends.mysql',
“主机”:“/cloudsql/michatbot-250809:us-central1:polls-instance2”,
“用户”:“测试”,
“密码”:“,
'姓名':'投票',
}
}
其他:
#本地运行,因此连接到本地MySQL实例或连接到
#通过代理云计算SQL。要通过命令行启动代理,请执行以下操作:
#$cloud\u sql\u proxy-instances=[INSTANCE\u CONNECTION\u NAME]=tcp:3306
#
#看https://cloud.google.com/sql/docs/mysql-connect-proxy
数据库={
“默认值”:{
'ENGINE':'django.db.backends.mysql',
“主机”:“127.0.0.1”,
“端口”:“3306”,
'姓名':'投票',
“用户”:“测试”,
“密码”:“,
}
}
#[结束数据库设置]
或者登录下面的谷歌应用程序引擎
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'"
textPayload:“回溯(最近一次呼叫):
文件“/env/lib/python3.7/site packages/gunicorn/arbiter.py”,第583行,在spawn\u worker中
worker.init_进程()
文件“/env/lib/python3.7/site packages/gunicorn/workers/gthread.py”,第104行,在init_进程中
super(ThreadWorker,self).init_进程()
文件“/env/lib/python3.7/site packages/gunicorn/workers/base.py”,第129行,在init_进程中
self.load_wsgi()
文件“/env/lib/python3.7/site packages/gunicorn/workers/base.py”,第138行,在load_wsgi中
self.wsgi=self.app.wsgi()
文件“/env/lib/python3.7/site packages/gunicorn/app/base.py”,第67行,在wsgi中
self.callable=self.load()
文件“/env/lib/python3.7/site packages/gunicorn/app/wsgiapp.py”,第52行,已加载
返回self.load_wsgiapp()
文件“/env/lib/python3.7/site packages/gunicorn/app/wsgiapp.py”,第41行,在load_wsgiapp中
return util.import\u app(self.app\u uri)
文件“/env/lib/python3.7/site packages/gunicorn/util.py”,第350行,在导入应用程序中
__导入(模块)
文件“/srv/main.py”,第1行,在
从mysite.wsgi导入应用程序
文件“/srv/mysite/wsgi.py”,第16行,在
application=get\u wsgi\u application()
文件“/env/lib/python3.7/site packages/django/core/wsgi.py”,第12行,在get\u wsgi\u应用程序中
django.setup(set_prefix=False)
文件“/env/lib/python3.7/site packages/django/_init__.py”,第19行,在安装程序中
配置日志记录(settings.logging\u CONFIG,settings.logging)
文件“/env/lib/python3.7/site packages/django/conf/_init__.py”,第57行,在_getattr中__
自我设置(名称)
文件“/env/lib/python3.7/site packages/django/conf/_init__.py”,第44行,在安装程序中
自包装=设置(设置模块)
文件“/env/lib/python3.7/site packages/django/conf/_init__.py”,第107行,在_init中__
mod=importlib.import\u模块(自我设置\u模块)
导入模块中的文件“/opt/python3.7/lib/python3.7/importlib/_init__.py”,第127行
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“/srv/mysite/settings.py”,第82行,在
将MySQLdb作为sql#noqa:402导入
ModuleNotFoundError:没有名为“MySQLdb”的模块
有两个线程,社区根据您的SO和软件版本想出了几种解决此错误的方法。您可以参考这些,也可以参考关于在Windows上用Python 3连接MySQL的更多讨论
确保遵循GAE标准中关于Python 3.7的说明。另外,GAE对使用Django有一些特定的支持,我建议您浏览Django支持,然后。谢谢您的回复。我想我现在解决不了这个问题。我会阅读你告诉我的文档,然后再次挑战。谢谢