ydf0509 / funboost

pip install funboost,python全功能分布式函数调度框架,funboost的功能是全面性重量级,用户能想得到的功能99%全都有;funboost的使用方式是轻量级,只有@boost一行代码需要写。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚 。
Apache License 2.0
682 stars 135 forks source link

sqlite作为中间件例子在mac/linux运行,报错 read-only [用户文件夹权限问题,自己修改个文件夹] #95

Closed longxl87 closed 10 months ago

longxl87 commented 10 months ago

mac os:14.1.1 (23B81) python 版本,3.11.5

运行以下代码:

import time from funboost import boost, BrokerEnum

@boost("task_queue_name1", qps=5, broker_kind=BrokerEnum.PERSISTQUEUE) # 入参包括20种,运行控制方式非常多,想得到的控制都会有。 def task_fun(x, y): print(f'{x} + {y} = {x + y}') time.sleep(3) # 框架会自动并发绕开这个阻塞,无论函数内部随机耗时多久都能自动调节并发达到每秒运行 5 次 这个 task_fun 函数的目的。

if name == "main": for i in range(100): task_fun.push(i, y=i * 2) # 发布者发布任务 task_fun.consume() # 消费者启动循环调度并发消费任务

报错: Traceback (most recent call last): File "", line 1176, in _find_and_load File "", line 1147, in _find_and_load_unlocked File "", line 690, in _load_unlocked File "", line 940, in exec_module File "", line 241, in _call_with_frames_removed File "/Users/leo/Programs/Anaconda/anaconda3/envs/py311/lib/python3.11/site-packages/funboost/init.py", line 4, in import nb_log File "/Users/leo/Programs/Anaconda/anaconda3/envs/py311/lib/python3.11/site-packages/nb_log/init.py", line 20, in from nb_log.log_manager import LogManager, LoggerLevelSetterMixin, LoggerMixin, LoggerMixinDefaultWithFileHandler, get_logger, get_logger_with_filehanlder File "/Users/leo/Programs/Anaconda/anaconda3/envs/py311/lib/python3.11/site-packages/nb_log/log_manager.py", line 30, in import deprecated File "/Users/leo/Programs/Anaconda/anaconda3/envs/py311/lib/python3.11/site-packages/deprecated/init.py", line 15, in from deprecated.classic import deprecated File "/Users/leo/Programs/Anaconda/anaconda3/envs/py311/lib/python3.11/site-packages/deprecated/classic.py", line 15, in import wrapt File "/Users/leo/Programs/Anaconda/anaconda3/envs/py311/lib/python3.11/site-packages/wrapt/init.py", line 10, in from .decorators import (adapter_factory, AdapterFactory, decorator, File "/Users/leo/Programs/Anaconda/anaconda3/envs/py311/lib/python3.11/site-packages/wrapt/decorators.py", line 34, in from inspect import ismethod, isclass, formatargspec ImportError: cannot import name 'formatargspec' from 'inspect' (/Users/leo/Programs/Anaconda/anaconda3/envs/py311/lib/python3.11/inspect.py)

无论是pip install inspect还是 conda install inspect都无法安装 无法运行

ydf0509 commented 10 months ago

inspect是python自带的,用户无需安装,

我用py3.11没问题 pip install wrapt==1.14.1 试试

longxl87 commented 10 months ago

inspect是python自带的,用户无需安装,

我用py3.11没问题 pip install wrapt==1.14.1 试试

我这边安装了 wrapt==1.14.1 还是没法启动。😭

screenshot-20231127-212809

ydf0509 commented 10 months ago

要会看报错啊,这么明显的错误,你是mac或linux,那么非root用户无法在根目录创建sqlite文件夹的,你在配置文件,自己换个有权限的文件夹就好了。要会看报错,不能浮躁

ydf0509 commented 10 months ago

你换成redis或者rabbitmq中间件,就不需要创建sqlite文件了。你还是太浮躁了,