我开始使用Kedro,所以我为默认的虹膜数据集创建了新的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
创建的默认工作流。
发布于 2021-03-06 13:52:43
问题是您的src/
文件夹(您的项目python包所在的位置)不在您的PYTHONPATH
路径上,所以如果您首先修改您的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()
https://stackoverflow.com/questions/66505695
复制相似问题