You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过API触发Prefect部署报FileNotFoundError但目录存在求助

Prefect部署触发Flow报错FileNotFoundError的排查与解决

针对你遇到的部署触发Flow时提示features/xxx目录不存在的问题,可从以下几个方向排查解决:

1. 校验工作目录配置

你的prefect.yaml中pull步骤设置工作目录为.,需确认Worker启动时的当前路径是否为项目根目录:

  • 如果Worker在非项目根目录启动,.指向的路径并非代码所在位置,导致找不到features目录。可改为项目根目录的绝对路径,例如:
    pull:
      prefect.deployments.steps.set_working_directory:
        directory: /absolute/path/to/your/project/root
    
  • 或者启动Worker前先通过cd命令切换到项目根目录。

2. 检查文件与忽略规则

  • 确认features目录下的xxx.py文件名是否包含空格(项目结构中显示为xxx .py),Python模块名不允许有空格,会导致导入失败,间接触发目录找不到的错误。建议重命名文件为xxx.py,并同步修改entrypoint为features.xxx:x-flow。
  • 查看.prefectignore文件,确保没有添加features/或features/xxx/这类忽略规则,避免Prefect拉取代码时跳过该目录。

3. 确认代码拉取完整性

如果你的部署依赖Git仓库(包含子模块),需确保拉取步骤能获取完整代码:

  • 若使用Git存储代码,替换set_working_directory为git_clone步骤,并开启子模块拉取:
    pull:
      - prefect.deployments.steps.git_clone:
          repository: "your-git-repo-url"
          submodules: true
          directory: .
    

4. 调试运行环境

在Flow代码开头添加调试代码,输出当前路径与Python环境信息,定位实际运行时的路径问题:

import os
import sys

print("当前工作目录:", os.getcwd())
print("Python路径:", sys.path)
print("features/xxx目录存在?", os.path.exists("features/xxx"))

通过Worker的日志查看输出,确认是否路径匹配预期。

5. 对齐Python环境

  • 检查Worker使用的Python版本是否与项目.python-version指定的版本一致,版本不兼容可能导致模块导入异常。
  • 确保项目根目录被添加到Python的sys.path中,可在Flow启动时手动添加:
    import sys
    sys.path.append(os.getcwd())
    

内容的提问来源于stack exchange,提问作者bende

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:06:02