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

Replit运行Flask-SocketIO报错OSError: protocol not found求助

Flask-SocketIO导入时触发OSError: protocol not found问题求助

我是Flask和SocketIO的新手,目前在Replit平台运行代码。当导入flask_socketio(代码第2行)时,会触发OSError: protocol not found错误。我想要实现的功能是:点击网页按钮后向服务器发送消息,服务器打印“Request Recieved!”。

以下是我的服务器代码、网页代码及报错日志,我已经尝试过安装相关依赖但问题仍未解决,希望能得到帮助。

服务器代码

from flask import *
from flask_socketio import *

app = Flask(__name__, template_folder = "templates", static_folder='static')
socketio = SocketIO(app)

@app.route("/")
def main_page():
  return render_template("main.html")

@socketio.on("buttonPressed")
def handleRequest():
  print("Request Recieved!")
  return ("", 204)

if __name__ == "__main__":
  app.run(host = "0.0.0.0", port = 2345)

网页代码

<html>
  <body>
    <h1>Request Testing</h1>
    <button onclick="testButton()">Test</button>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js" integrity="sha512-q/dWJ3kcmjBLU4Qc47E4A9kTB4m3wuTY7vkFJDTZKjTs8jhyGQnaUrxa0Ytd0ssMZhbNua9hE+E7Qv1j+DyZwA==" crossorigin="anonymous"></script>
    <script>
      var socket = io();
      
      function testButton() {
        socket.emit("buttonPressed");
      }
    </script>
  </body>
</html>

报错日志

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    from flask_socketio import *
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/flask_socketio/__init__.py", line 9, in <module>
    from socketio import socketio_manage  # noqa: F401
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/socketio/__init__.py", line 9, in <module>
    from .zmq_manager import ZmqManager
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/socketio/zmq_manager.py", line 5, in <module>
    import eventlet.green.zmq as zmq
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/eventlet/__init__.py", line 17, in <module>
    from eventlet import convenience
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/eventlet/convenience.py", line 7, in <module>
    from eventlet.green import socket
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/eventlet/green/socket.py", line 21, in <module>
    from eventlet.support import greendns
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/eventlet/support/greendns.py", line 71, in <module>
    setattr(dns.rdtypes.IN, pkg, import_patched('dns.rdtypes.IN.' + pkg))
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/eventlet/support/greendns.py", line 61, in import_patched
    return patcher.import_patched(module_name, **modules)
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/eventlet/patcher.py", line 129, in import_patched
    return inject(
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/eventlet/patcher.py", line 106, in inject
    module = __import__(module_name, {}, {}, module_name.split('.')[:-1])
  File "/home/runner/Website-Testing/venv/lib/python3.8/site-packages/dns/rdtypes/IN/WKS.py", line 25, in <module>
    _proto_tcp = socket.getprotobyname('tcp')
OSError: protocol not found

内容的提问来源于stack exchange,提问作者Not My Name

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:05:17