Heroku上的gunicorn线程

时间:2014-09-04 12:32:20

标签: multithreading heroku gunicorn

我尝试使用以下Procfile命令在Heroku上部署python Web应用程序:

web: gunicorn service:app --log-file=- --workers 1 --threads 4

这会产生以下错误:

Traceback (most recent call last):
  File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 139, in load_class
    mod = import_module('.'.join(components))
  File "/app/.heroku/python/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/gthread.py", line 37, in <module>
    """)
RuntimeError:
    You need 'concurrent' installed to use this worker with this python version.

由于我们无法控制Heroku上的gunicorn安装,如何解决此依赖性问题?

奇怪的是,Heroku没有提到their docs中的枪炮线,只有工人。这有关系吗?

1 个答案:

答案 0 :(得分:9)

将这些行添加到您的requirements.txt:

futures==2.1.6
trollius==1.0.1

将这些更改推送到您的heroku实例后,您将能够使用线程运行gunicorn。

concurrent 是一个python 3.2软件包,并作为 future 软件包向后移植到python 2.7。您应该至少使用python 3.2作为运行时,或者应该将反向移植的包添加到项目要求中。