kedro 作为 python 命令而不是命令行运行

问题描述

我刚开始使用 Kedro,所以我为认的 iris 数据集创建了新的 kedro 项目。

我可以使用 kedro run 命令成功运行它。我现在的问题是如何将它作为 python 命令运行?从文档中我读到命令 kedro run 运行 src/project-name/run.py。但是,如果我运行 run.py,我会得到 ModuleNotFoundError: No module named 'iris_workflow'。如果我从 run 运行 src/project-name/cli.py 方法,我会遇到同样的错误

如果我在终端中运行 kedro run,一切正常。

如何在没有 kedro run 的情况下从 python 脚本运行 subprocess.run()。如果我在脚本中导入 run.pycli.py 并运行它,我会收到相同的错误 ModuleNotFoundError: No module named 'iris_workflow'

这是我使用 kedro new --starter=pandas-iris

创建的认工作流程

解决方法

问题是您的项目 python 包所在的 src/ 文件夹不在您的 Python 路径上,因此如果您先修改您的 PYTHONPATH,您将能够运行 { {1}}:

run.py

为了更具体地回答您的问题,如果您想从 Python 脚本运行 Kedro,您可以这样做:

~/code/kedro/test-project
test-project ❯ PYTHONPATH=$PYTHONPATH:$pwd/src python3 src/test_project/run.py