TypeError:__init __()获得了意外的关键字参数'family_or_realsock'

时间:2018-07-24 21:25:23

标签: python heroku web flask gunicorn

我正在使用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'

1 个答案:

答案 0 :(得分:0)

更新您的Gunicorn版本,并在您的requirements.txt中更改版本号。然后尝试重新上传您的项目。我使用的版本是0.16.1,更新到当前版本为我解决了这个确切的问题。