PromptFlow部署后路径无法识别,触发FileNotFoundError问题求助
问题:PromptFlow部署后端点调用时出现文件找不到错误
我在PromptFlow中通过以下代码定义文件路径:
path: str = os.path.join( os.getcwd(), folder_name, sub_folder_name, file_name, )
该代码在Windows本地VS Code中运行正常,在ai.azure.com在线运行也能找到文件,但部署PromptFlow后调用端点时收到如下错误:
{
"error": {
"code": "UserError",
"message": "Execution failure in 'my_python_file': (FileNotFoundError) [Errno 2] No such file or directory: '/var/runit/promptflow-ingress/my_folder_name/my_subfolder_name/my_file_name'"
}
}
我输出了os.getcwd()返回的/var/runit/promptflow-ingress/目录下的文件,结果如下:
- 'handle_executor_containers.py'
- 'finish'
- 'run'
- 'supervise'
解决方案
避免依赖
os.getcwd()
部署后的工作目录并非你的项目文件所在目录,因此通过os.getcwd()拼接路径会指向错误位置。改用脚本所在目录作为基准路径
使用__file__获取当前脚本的绝对路径,以此为基准拼接目标文件路径,代码示例:
import os # 获取当前脚本所在的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) path: str = os.path.join( script_dir, folder_name, sub_folder_name, file_name, )
- 确认部署包包含目标文件
检查PromptFlow的部署配置,确保folder_name、sub_folder_name及目标文件被正确纳入部署包,避免文件遗漏。
内容的提问来源于stack exchange,提问作者DrGriff
相关产品推荐
相关产品推荐

