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
相关产品推荐
相关产品推荐

