Kedro升级0.17.3后EMR执行kedro run提示无run命令求助
Kedro 0.16.2升级0.17.3报
Error: No such command 'run'解决方案 触发场景
该问题仅在EMR环境出现,本地执行正常(仅报预期内的S3连接错误),属于跨环境配置不一致类问题。
排查&解决步骤
- 优先确认EMR环境的Kedro版本匹配
首先排查是否调用了EMR预装的全局旧版本Kedro,执行which kedro确认命令路径是否在你项目对应的虚拟环境目录下。如果是全局路径,你可以选择激活项目虚拟环境后再执行命令,或者直接使用你在setup.py中定义的项目专属入口命令kedro-project run替代全局kedro run。 - 补全项目根目录的pyproject.toml配置
Kedro从0.17版本开始强制要求项目根目录存在pyproject.toml文件用于识别项目配置,本地有该文件但部署到EMR时漏传是该类跨环境报错的高发原因。文件配置示例如下:[tool.kedro] package_name = "kedro-package" project_name = "你的项目名称" kedro_init_version = "0.17.3" - 修正cli.py的命令注册逻辑
你当前的cli.py没有正确注册Kedro官方提供的项目命令组,导致run命令无法被识别,cli.py参考写法如下:import click from kedro.framework.cli.project import project_group from kedro.framework.cli.utils import KedroCliError @click.group(name="Kedro项目CLI") def cli(): pass # 注册Kedro官方项目命令(含run、install等常用命令) cli.add_command(project_group) def run(): try: cli() except KedroCliError as e: click.echo(e, err=True) - 确认EMR上已正确安装项目包
在EMR的项目根目录执行pip install -e .,完成项目的可编辑模式安装,确保自定义CLI入口和配置被Python环境正确识别。
内容的提问来源于stack exchange,提问作者Sandeep Gunda
相关产品推荐
相关产品推荐

