如何在Kedro项目中找到kedro_cli.py及解决PHP执行Kedro命令问题
解决PHP shell_exec调用Kedro命令找不到kedro_cli.py的问题
原因说明
Kedro 0.18.0及以后的版本已经移除了kedro_cli.py文件,改用Python的-m kedro模块调用方式,所以你找不到这个文件是正常的,并非项目创建错误。
正确的调用方案
以下两种方式均可在PHP的shell_exec()中正常执行:
方案1:直接调用虚拟环境的Python运行Kedro模块
指定虚拟环境的Python完整路径,加上-m kedro参数,同时明确项目目录和流水线名称:
C:\xampp\htdocs\webmap\python\detect\venv\Scripts\python.exe -m kedro run --pipeline objects-prediction --project-dir C:\xampp\htdocs\webmap\python\detect
方案2:切换到项目目录后调用项目的__main__.py
先切换到项目根目录,再执行项目的__main__.py(注意你之前的命令写错了可执行文件后缀,应该是python.exe而非python.py):
cd C:\xampp\htdocs\webmap\python\detect && C:\xampp\htdocs\webmap\python\detect\venv\Scripts\python.exe src\detect\__main__.py run --pipeline objects-prediction
额外排查点
- 确保PHP进程拥有访问项目目录和虚拟环境的权限,避免因权限不足导致命令执行失败
- 可先在cmd中测试上述命令是否正常运行,再复制到
shell_exec()中 - 使用
shell_exec('命令 2>&1')捕获错误输出,便于排查问题
内容的提问来源于stack exchange,提问作者sama acm
相关产品推荐
相关产品推荐

