我正在使用Python,Flask开发一个应用程序,并与gunicorn和eventlet(工作者)一起使用,但是我无法将其部署在Heroku上。
在本地,该应用程序也可以正常运行,并且也可以在gunicorn中运行。我使用heroku本地网络和honcho start(python的foreman)对其进行了测试,并且它也可以正常工作。
我的Procfile是网络:gunicorn --worker-class eventlet -w 1运行:app 。 当我使用“ heroku本地网络”测试工具运行它时,它工作正常。
我在项目中使用Flask-SocketIO:
var socket = io.connect('http://'+ document.domain +':'+ location.port)
以下是“ heroku logs --source app”中的日志:
File "/app/.heroku/python/lib/python3.6/site-
packages/gunicorn/arbiter.py", line 473, in spawn_worker
Traceback (most recent call last):
worker.init_process()
File "/app/.heroku/python/lib/python3.6/site-
packages/gunicorn/workers/geventlet.py", line 30, in init_process
super(EventletWorker, self).init_process()
File "/app/.heroku/python/lib/python3.6/site-
packages/gunicorn/workers/base.py", line 106, in init_process
self.run()
File "/app/.heroku/python/lib/python3.6/site-
packages/gunicorn/workers/geventlet.py", line 49, in run
s = GreenSocket(family_or_realsock=sock)
File "/app/.heroku/python/lib/python3.6/site-
packages/eventlet/greenio/base.py", line 135, in __init__
fd = _original_socket(family, *args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'family_or_realsock'
答案 0 :(得分:0)
更新您的Gunicorn版本,并在您的requirements.txt中更改版本号。然后尝试重新上传您的项目。我使用的版本是0.16.1,更新到当前版本为我解决了这个确切的问题。