Ubuntu 20.04运行MLflow Project报错python: command not found如何解决
问题根因
你在当前终端设置的alias python='python3'仅对当前交互式shell会话生效,MLflow执行任务时会启动独立的非交互式子shell,不会加载当前会话的别名配置,因此仍然找不到python命令。
解决方案
方案1:系统级绑定python到python3(最推荐,永久生效)
直接安装Ubuntu官方维护的python-is-python3包,全系统所有场景下python命令都会默认指向python3:
sudo apt update && sudo apt install -y python-is-python3
安装完成后直接重新运行MLflow命令即可。
方案2:临时添加python软链接到PATH(临时生效,仅当前会话可用)
如果不想修改系统级配置,可在当前终端创建临时软链接并加入PATH环境变量,子shell会继承该配置:
mkdir -p ~/tmp_bin ln -s $(which python3) ~/tmp_bin/python export PATH="$HOME/tmp_bin:$PATH"
执行完成后在当前终端窗口直接运行MLflow命令即可,关闭终端后配置自动失效。
方案3:修改当前MLflow项目的配置文件
如果仅需要针对当前MLflow项目适配,可直接修改项目根目录下的MLproject文件,将command字段中的python替换为python3:
示例原配置:
command: "python tracking.py {alpha} {l1_ratio}"
修改后:
command: "python3 tracking.py {alpha} {l1_ratio}"
修改保存后重新运行MLflow命令即可。
方案4:运行时手动指定python解释器
也可以在执行MLflow命令前临时指定解释器,直接运行以下命令即可:
PYTHON=$(which python3) mlflow run . --no-conda -P alpha=0.5
内容的提问来源于stack exchange,提问作者Lawhatre
相关产品推荐
相关产品推荐

