funboost
funboost copied to clipboard
windows上的脚本到linux上远程执行时的路径不正确
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不存在。
先是上传文件夹到linux,然后才开始在linux执行python命令,把日志调成debug日志,sftp_log_level=logging.DEBUG,看看 日志,上传了哪些文件.
先从打印的日志查看,上传了哪些文件明细
你把这个变量打印一下
应该是file_name 没有盘符,而python_proj_dir有盘符, 正常pycahrm启动的都有盘符, 你先打印下, 看来需要兼容下.
你试试43.5
修改了获取相对路径
试了43.5,仍有此问题,但是看着应该用是pycharm的原因,用命令行是可以的。
试了43.5,仍有此问题,但是看着应该用是pycharm的原因,用命令行是可以的。
我一直就是用win + pycahrm
你print一下 python_proj_dir 和 file_name
试了43.5,仍有此问题,但是看着应该用是pycharm的原因,用命令行是可以的。
你改成43.7,我已经优化成强制绝对路径了.