python - 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
没有subprocess.run()
. 如果我在脚本中导入run.py
or并运行它,我会得到同样的错误。cli.py
ModuleNotFoundError: No module named 'iris_workflow'
这是我创建的默认工作流程kedro new --starter=pandas-iris
解决方案
问题是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()
推荐阅读
- r - 问题:在 openSUSE Leap 15.0 上安装 R:“需要 liblzma 库和头文件”
- jquery - 在jquery上方加载旧评论后将固定评论重新定位在顶部
- android - Can't see elements layout android studio in activity_main.xml
- git - 保留来自不同分支的文件变体的本地版本
- java - Printing Vertical Histogram to console
- javascript - 使用 onchange 方法的 Javascript 未捕获的 ReferenceError
- regex - Regex: Extract content between two strings using sed over multiple lines
- java - jsoup - 如何选择特定 h3 之后段落中的所有链接(也有 id 和 span 类)
- spring - Get the value of dropdown menu which is clicked in a webpage
- python - 我如何捕获帐户和日期字段数据并使用 python 将它们作为列包含在内