Can';我不能让django db geventpool在Heroku工作

Can';我不能让django db geventpool在Heroku工作,django,heroku,gunicorn,heroku-postgres,Django,Heroku,Gunicorn,Heroku Postgres,我试图在Heroku中设置Django应用程序以使用DB池,但在将应用程序部署到Heroku时出错。我在这里遵循了安装django db geventpool的指南:但这不起作用 我的猜测是,出于某种原因,Heroku在启动gunicorn时没有加载我的gunicorn_config.py文件,但不确定为什么 我的文件: release: python manage.py migrate web: gunicorn app.wsgi -k gevent --worker-connections

我试图在Heroku中设置Django应用程序以使用DB池,但在将应用程序部署到Heroku时出错。我在这里遵循了安装django db geventpool的指南:但这不起作用

我的猜测是,出于某种原因,Heroku在启动gunicorn时没有加载我的gunicorn_config.py文件,但不确定为什么

我的文件:

release: python manage.py migrate
web: gunicorn app.wsgi -k gevent --worker-connections 100 --timeout 600 --config gunicorn_config.py
My gunicorn_config.py:

来自psycogreen.gevent导入修补程序_psycopg#如果使用gevent workers,请使用此选项
def post_分叉(服务器、工作程序):
patch_psycopg()
worker.log.info(“使Psycopg2变绿”)
My settings.py:

数据库={
“默认”:dj_database_url.config(conn_max_age=500)
}
数据库['default']。更新(
原子请求=False,
选择权={
“MAX_CONNS”:4
}
)
以下是部署到Heroku时的堆栈跟踪:

remote: -----> $ python manage.py collectstatic --noinput
remote:        Traceback (most recent call last):
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django_db_geventpool/backends/postgresql_psycopg2/base.py", line 13, in <module>
remote:            from gevent.lock import Semaphore
remote:        ModuleNotFoundError: No module named 'gevent'
remote:        During handling of the above exception, another exception occurred:
remote:        Traceback (most recent call last):
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/db/utils.py", line 115, in load_backend
remote:            return import_module('%s.base' % backend_name)
remote:          File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
remote:            return _bootstrap._gcd_import(name[level:], package, level)
remote:          File "<frozen importlib._bootstrap>", line 994, in _gcd_import
remote:          File "<frozen importlib._bootstrap>", line 971, in _find_and_load
remote:          File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
remote:          File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
remote:          File "<frozen importlib._bootstrap_external>", line 678, in exec_module
remote:          File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django_db_geventpool/backends/postgresql_psycopg2/base.py", line 15, in <module>
remote:            from eventlet.semaphore import Semaphore
remote:        ModuleNotFoundError: No module named 'eventlet'
remote:        During handling of the above exception, another exception occurred:
remote:        Traceback (most recent call last):
remote:          File "manage.py", line 10, in <module>
remote:            execute_from_command_line(sys.argv)
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
remote:            utility.execute()
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 338, in execute
remote:            django.setup()
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/__init__.py", line 27, in setup
remote:            apps.populate(settings.INSTALLED_APPS)
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/registry.py", line 108, in populate
remote:            app_config.import_models()
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/config.py", line 202, in import_models
remote:            self.models_module = import_module(models_module_name)
remote:          File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
remote:            return _bootstrap._gcd_import(name[level:], package, level)
remote:          File "<frozen importlib._bootstrap>", line 994, in _gcd_import
remote:          File "<frozen importlib._bootstrap>", line 971, in _find_and_load
remote:          File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
remote:          File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
remote:          File "<frozen importlib._bootstrap_external>", line 678, in exec_module
remote:          File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/auth/models.py", line 4, in <module>
remote:            from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 52, in <module>
remote:            class AbstractBaseUser(models.Model):
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/base.py", line 124, in __new__
remote:            new_class.add_to_class('_meta', Options(meta, app_label))
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/base.py", line 325, in add_to_class
remote:            value.contribute_to_class(cls, name)
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/options.py", line 214, in contribute_to_class
remote:            self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/db/__init__.py", line 33, in __getattr__
remote:            return getattr(connections[DEFAULT_DB_ALIAS], item)
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/db/utils.py", line 211, in __getitem__
remote:            backend = load_backend(db['ENGINE'])
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/db/utils.py", line 134, in load_backend
remote:            raise ImproperlyConfigured(error_msg)
remote:        django.core.exceptions.ImproperlyConfigured: 'django_db_geventpool.backends.postgresql_psycopg2' isn't an available database backend.
remote:        Try using 'django.db.backends.XXX', where XXX is one of:
remote:            'mysql', 'oracle', 'postgresql', 'sqlite3'
remote:        Error was: No module named 'eventlet'
remote: 
remote:  !     Error while running '$ python manage.py collectstatic --noinput'.
remote:        See traceback above for details.
remote:------>$python manage.py collectstatic--noinput
远程:回溯(最近一次呼叫最后一次):
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django_db_geventpool/backends/postgresql_psycopg2/base.py”,第13行,在
远程:从gevent.lock导入信号量
远程:ModuleNotFoundError:没有名为“gevent”的模块
远程:在处理上述异常期间,发生了另一个异常:
远程:回溯(最近一次呼叫最后一次):
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/db/utils.py”,第115行,在load_后端
远程:返回导入\u模块(“%s.base”%backend\u名称)
远程:文件“/app/.heroku/python/lib/python3.6/importlib/_init__.py”,第126行,在导入模块中
远程:返回_引导。_gcd_导入(名称[级别:],包,级别)
远程:文件“”,第994行,在\u gcd\u导入中
远程:文件“”,第971行,在_find_和_load中
远程:文件“”,第955行,在“查找”和“加载”中解锁
远程:文件“”,第665行,在\u加载\u解锁
远程:exec_模块中第678行的文件“”
远程:文件“”,第219行,在已删除帧的调用中
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django_db_geventpool/backends/postgresql_psycopg2/base.py”,第15行,在
远程:从eventlet.semaphore导入信号量
远程:ModuleNotFoundError:没有名为“eventlet”的模块
远程:在处理上述异常期间,发生了另一个异常:
远程:回溯(最近一次呼叫最后一次):
远程:文件“manage.py”,第10行,在
远程:从命令行(sys.argv)执行命令
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/core/management/_init__.py”,第364行,从命令行执行
远程:utility.execute()
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/core/management/_init__.py”,执行中第338行
远程:django.setup()
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/_init__.py”,第27行,在安装程序中
远程:应用程序。填充(设置。已安装的应用程序)
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/apps/registry.py”,第108行,填充
远程:app_config.import_models()
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/apps/config.py”,第202行,在import\u模型中
远程:self.models\u module=导入模块(models\u module\u名称)
远程:文件“/app/.heroku/python/lib/python3.6/importlib/_init__.py”,第126行,在导入模块中
远程:返回_引导。_gcd_导入(名称[级别:],包,级别)
远程:文件“”,第994行,在\u gcd\u导入中
远程:文件“”,第971行,在_find_和_load中
远程:文件“”,第955行,在“查找”和“加载”中解锁
远程:文件“”,第665行,在\u加载\u解锁
远程:exec_模块中第678行的文件“”
远程:文件“”,第219行,在已删除帧的调用中
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/contrib/auth/models.py”,第4行,在
远程:从django.contrib.auth.base\u用户导入AbstractBaseUser、BaseUserManager
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/contrib/auth/base_user.py”,第52行,在
远程:类AbstractBaseUser(models.Model):
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/db/models/base.py”,第124行,在新的__
远程:新类。将类添加到类(“元”,选项(元,应用标签))
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/db/models/base.py”,第325行,添加到类中
remote:value.contribution_到_类(cls,name)
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/db/models/options.py”,第214行,在contribute\u to\u类中
remote:self.db\u table=truncate\u name(self.db\u table,connection.ops.max\u name\u length())
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/db/_init__.py”,第33行,在_getattr中__
远程:返回getattr(连接[默认\u DB\u别名],项)
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/db/utils.py”,第211行,在__
远程:后端=加载_后端(db['ENGINE'])
远程:文件“/app/.heroku/python/lib/python3.6/site packages/django/db/utils.py”,第134行,在load\u后端
远程:raise配置不正确(错误消息)
远程:django.core.exceptions.impropertlyconfigured:“django\u db\u geventpool.backends.postgresql\u psycopg2”不是可用的数据库后端。
远程:尝试使用“django.db.backends.XXX”,其中XXX是:
远程:“mysql”、“oracle”、“postgresql”、“sqlite3”
远程:错误为:没有名为“eventlet”的模块
远程:
遥控器:!运行“$python manage.py collectstatic--noinput”时出错。