funboost icon indicating copy to clipboard operation
funboost copied to clipboard

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

Open t880216t opened this issue 10 months ago • 9 comments

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不存在。

t880216t avatar Apr 16 '24 09:04 t880216t

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

ydf0509 avatar Apr 16 '24 11:04 ydf0509

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

ydf0509 avatar Apr 16 '24 11:04 ydf0509

你把这个变量打印一下 image

ydf0509 avatar Apr 16 '24 11:04 ydf0509

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

ydf0509 avatar Apr 16 '24 11:04 ydf0509

你试试43.5

ydf0509 avatar Apr 16 '24 12:04 ydf0509

image 修改了获取相对路径

ydf0509 avatar Apr 16 '24 12:04 ydf0509

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

t880216t avatar Apr 16 '24 12:04 t880216t

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

我一直就是用win + pycahrm

你print一下 python_proj_dir 和 file_name

ydf0509 avatar Apr 17 '24 01:04 ydf0509

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

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

ydf0509 avatar Apr 18 '24 03:04 ydf0509