Python Gevent猴子修补-溢流错误
我尝试在第一行使用gevent.monkey.patch_all()在Raspberry Pi上的Python3.7上运行我的Flask项目。但最终却出现了这样的错误:Python Gevent猴子修补-溢流错误,python,gevent,Python,Gevent,我尝试在第一行使用gevent.monkey.patch_all()在Raspberry Pi上的Python3.7上运行我的Flask项目。但最终却出现了这样的错误: Traceback (most recent call last): File "src/gevent/_hub_local.py", line 71, in gevent._gevent_c_hub_local.get_hub File "src/gevent/_hub_local.p
Traceback (most recent call last):
File "src/gevent/_hub_local.py", line 71, in gevent._gevent_c_hub_local.get_hub
File "src/gevent/_hub_local.py", line 80, in gevent._gevent_c_hub_local.get_hub_noargs
File "/home/pi/server/venv/lib/python3.7/site-packages/gevent/hub.py", line 445, in __init__
self.loop = self.loop_class(flags=loop, default=default) # pylint:disable=not-callable
File "/home/pi/server/venv/lib/python3.7/site-packages/gevent/hub.py", line 459, in loop_class
return GEVENT_CONFIG.loop
File "/home/pi/server/venv/lib/python3.7/site-packages/gevent/_config.py", line 50, in getter
return self.settings[setting_name].get()
File "/home/pi/server/venv/lib/python3.7/site-packages/gevent/_config.py", line 146, in get
self.value = self.validate(self._default())
File "/home/pi/server/venv/lib/python3.7/site-packages/gevent/_config.py", line 248, in validate
return self._import_one_of([self.shortname_map.get(x, x) for x in value])
File "/home/pi/server/venv/lib/python3.7/site-packages/gevent/_config.py", line 219, in _import_one_of
return self._import_one(item)
File "/home/pi/server/venv/lib/python3.7/site-packages/gevent/_config.py", line 237, in _import_one
module = importlib.import_module(module)
File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 980, 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/server/venv/lib/python3.7/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
我需要有patch monkey,因为当我删除它时,其他一切都正常工作,但从外部线程发出的套接字正在堆叠和缓冲,并在很长一段时间后到达JavaScript处理程序
我的模块版本:
Flask==1.1.2
Flask-SocketIO==5.0.1
python-engineio==4.0.0
python-socketio==5.04
gevent==20.12.1
gevent-websocket==0.10.1
谁都知道,我该如何解决这个问题
谢谢。问题是我在RPi上运行的是32位而不是64位的Python3。请同时显示带有导入的代码或查看RPi:检查是否运行32位或64位:这是我的导入,它在第一行失败:import gevent.monkey;gevent.monkey.patch_all()#patch_thread(),UserMixin from flask\u sqlalchemy import sqlalchemy from flask\u socketio import socketio from flask\u babel\u js import BabelJS from flask\u babel import babel from flask import flask import platform import datetime import socket sys import osI使用gevent本人和Python 3.8.5,没有问题。您没有从init、py文件导入导致的棘手问题吗?也许可以创建一个新的虚拟环境,从您需要的基本软件包开始,检查哪里出错,并显示64位选项。所以,我认为最短的路径就是完成这项工作。用另一张SD卡进行实验很容易
Flask==1.1.2
Flask-SocketIO==5.0.1
python-engineio==4.0.0
python-socketio==5.04
gevent==20.12.1
gevent-websocket==0.10.1