python - 为什么当我使用 gunicorin 和 gevent 启动 flaskserver 时会出现此错误?
问题描述
我正在尝试运行 socketio 烧瓶服务器并遇到上述问题。尽管错误消息告诉我,但我无法弄清楚溢出发生在哪里。帮助?!
应用程序.py:
from flask import Flask, render_template, url_for
from flask_login import LoginManager, login_required, logout_user
from flask_socketio import SocketIO, send
import socketio
from auth import authentication
from manager import manager
from remote import remote
from models import db, User
def create_socketserver():
app = Flask(__name__)
app.debug = True
#app.config['SECRET_KEY'] = 'nF4fN^xe=X*tBM/X+\A4A/'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///user.db'
db.init_app(app)
app.register_blueprint(authentication)
app.register_blueprint(manager)
app.register_blueprint(remote)
socketio = SocketIO(app, cors_allowed_origins='*')
return app, socketio
if __name__ == "__main__":
app, socketio = create_socketserver()
@app.route('/')
def index():
return render_template('base.html')
login_manager = LoginManager(app)
@login_manager.user_loader
def load_user(id):
return User.query.get(int(id))
logout_user
socketio.run(app, host='0.0.0.0')
命令行错误:
pi@raspberrypi:~/Desktop/server $ python __init__.py
Traceback (most recent call last):
File "__init__.py", line 40, in <module>
socketio.run(app, host='0.0.0.0')
File "/home/pi/.local/lib/python3.8/site-packages/flask_socketio/__init__.py", line 647, in run
monkey.patch_thread()
File "/home/pi/.local/lib/python3.8/site-packages/gevent/monkey.py", line 195, in ignores
return func(*args, **kwargs)
File "/home/pi/.local/lib/python3.8/site-packages/gevent/monkey.py", line 754, in patch_thread
gevent_threading_mod, _ = _patch_module('threading',
File "/home/pi/.local/lib/python3.8/site-packages/gevent/monkey.py", line 443, in _patch_module
gevent_module, target_module, target_module_name = _check_availability(name)
File "/home/pi/.local/lib/python3.8/site-packages/gevent/monkey.py", line 429, in _check_availability
gevent_module = getattr(__import__('gevent.' + name), name)
File "<frozen importlib._bootstrap>", line 988, in _find_and_load
File "<frozen importlib._bootstrap>", line 149, in __enter__
File "<frozen importlib._bootstrap>", line 88, in acquire
File "src/gevent/_semaphore.py", line 273, in gevent._gevent_c_semaphore.Semaphore.__enter__
File "src/gevent/_semaphore.py", line 274, in gevent._gevent_c_semaphore.Semaphore.__enter__
File "src/gevent/_semaphore.py", line 175, in gevent._gevent_c_semaphore.Semaphore.acquire
File "/home/pi/.local/lib/python3.8/site-packages/gevent/thread.py", line 121, in acquire
acquired = BoundedSemaphore.acquire(self, blocking, timeout)
File "src/gevent/_semaphore.py", line 175, in gevent._gevent_c_semaphore.Semaphore.acquire
File "src/gevent/_semaphore.py", line 200, in gevent._gevent_c_semaphore.Semaphore.acquire
OverflowError: Python int too large to convert to C long
编辑 希望现在更好...我将日志更改为文本现在 编辑
解决方案
推荐阅读
- javascript - 选择性深层克隆
- r - 优化矩阵/数据框的创建
- javascript - Props 并不完全依赖于 Vuejs
- javascript - 在 input 中输入信息,同时在 div 的 textContent 上显示信息
- android - 按钮未在嵌套线性布局中显示文本
- c++ - 如何使clang-format 11在可变参数模板声明后放置一个空格
- javascript - 所有帧的 JavaScript 类覆盖
- python - 如何用 sklearn 标准化二维数组?
- reactjs - 使用 useEffect 在第一次渲染时运行 Apollo 突变
- ibm-doors - 如何获取 oldValue 的作者