首页 > 解决方案 > kedro 作为 python 命令而不是命令行运行

问题描述

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

我能够使用kedro run命令成功运行它。我现在的问题是如何将它作为 python 命令运行?从文档中我读到该命令kedro run 运行src/project-name/run.py. 但是,如果我运行run.py我得到ModuleNotFoundError: No module named 'iris_workflow'. 如果我runsrc/project-name/cli.py.

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

如何在kedro run没有subprocess.run(). 如果我在脚本中导入run.pyor并运行它,我会得到同样的错误。cli.pyModuleNotFoundError: No module named 'iris_workflow'

这是我创建的默认工作流程kedro new --starter=pandas-iris

标签: pythonkedro

解决方案


问题是src/你的项目 python 包所在的文件夹不在你的 Python 路径上,所以如果你修改你的PYTHONPATH第一个,你将能够运行run.py

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

为了更具体地回答您的问题,如果您想从 Python 脚本运行 Kedro,您可以执行以下操作:

import sys

sys.path.append("<path-to-your-project-src")
with KedroSession.create(package_path.name) as session:
    session.run()

推荐阅读