问题描述
我刚开始使用 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.py
或 cli.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