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

windows上的脚本到linux上远程执行时的路径不正确 #113

Closed t880216t closed 5 months ago

t880216t commented 5 months ago

windows上的代码如下:

from funboost import boost, BoosterParams, BrokerEnum

@boost(BoosterParams(queue_name='queue_data_list', broker_kind=BrokerEnum.REDIS, qps=3))
def queue_data_list(x, y):
    print(f'start {x} + {y} ....')
    # time.sleep(10)
    print(f'over {x} + {y} = {x + y}')

if __name__ == '__main__':
    queue_data_list.fabric_deploy("127.0.0.1", 8222, "ubuntu", "aa123456")

执行时的command组装成了:

Command: 'cd /home/ubuntu/codes/pydev; export is_funboost_remote_run=1;export PYTHONPATH=/home/ubuntu/codes/pydev:$PYTHONPATH ;python3 -c "from E:.workspace.remote_test.execute_client import queue_data_list;queue_data_list.multi_process_consume(1)"  -funboostmark funboost_fabric_mark__queue_data_list__queue_data_list '

其中的from E:.workspace.remote_test.execute_client这是windows上的路径,在linux不存在。

ydf0509 commented 5 months ago

先是上传文件夹到linux,然后才开始在linux执行python命令,把日志调成debug日志,sftp_log_level=logging.DEBUG,看看 日志,上传了哪些文件. image

ydf0509 commented 5 months ago

先从打印的日志查看,上传了哪些文件明细

ydf0509 commented 5 months ago

你把这个变量打印一下 image

ydf0509 commented 5 months ago

应该是file_name 没有盘符,而python_proj_dir有盘符, 正常pycahrm启动的都有盘符, 你先打印下, 看来需要兼容下.

ydf0509 commented 5 months ago

你试试43.5

ydf0509 commented 5 months ago

image 修改了获取相对路径

t880216t commented 5 months ago

试了43.5,仍有此问题,但是看着应该用是pycharm的原因,用命令行是可以的。

ydf0509 commented 5 months ago

试了43.5,仍有此问题,但是看着应该用是pycharm的原因,用命令行是可以的。

我一直就是用win + pycahrm

你print一下 python_proj_dir 和 file_name

ydf0509 commented 5 months ago

试了43.5,仍有此问题,但是看着应该用是pycharm的原因,用命令行是可以的。

你改成43.7,我已经优化成强制绝对路径了.