首页 > 解决方案 > 为什么当我使用 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

作为.png

编辑 希望现在更好...我将日志更改为文本现在 编辑

标签: pythonflaskcompiler-errorsgeventflask-socketio

解决方案


推荐阅读