You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask-SocketIO报错:'Server'对象无'get_environ'属性,求解决

问题排查与解决:AttributeError: 'Server' object has no attribute 'get_environ'

问题根源

这个错误是由于Flask-SocketIO与python-socketio/python-engineio版本不兼容导致的。你当前使用的Flask-SocketIO 5.3.4要求配套的python-socketio版本为5.x系列,但你安装的是4.6.0,版本差异导致Flask-SocketIO调用了python-socketio中不存在的get_environ方法。

解决方案:调整依赖版本

将依赖版本更新为兼容组合,推荐以下经过验证的版本:

Flask==2.3.2
Flask-Cors==4.0.0
Flask-SocketIO==5.3.4
python-engineio==4.9.0
python-socketio==5.11.2

操作步骤

  • 卸载现有不兼容的库:
pip uninstall -y python-engineio python-socketio
  • 安装指定版本的依赖:
pip install python-engineio==4.9.0 python-socketio==5.11.2

验证代码

你的server.py代码本身无逻辑问题,版本适配后,建议补充启动代码以确保服务正常运行:

app = Flask(__name__, static_folder="../dist", static_url_path="")
CORS(app, resources={r"/*": {"origins": "*"}})
socketio = SocketIO(app, logger=True, engineio_logger=True, cors_allowed_origins="*")
        
@socketio.on("connect")
def handle_connect():
    print("Connected")

@socketio.on("disconnect")
def handle_disconnect():
    print("Client has disconnected")

if __name__ == '__main__':
    socketio.run(app, debug=True, host='0.0.0.0')

内容的提问来源于stack exchange,提问作者huardy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:05:16