描述问题
我的项目中有2个流程,它们都需要在流程工作目录之外导入项目共享代码(项目模块为 lib
)。当我这样做时,VS Code扩展总是无法加载Python节点,显示错误信息 (ModuleNotFoundError) No module named 'lib'
。尝试在Python节点中点击“使用高级选项重新生成”后将PYTHONPATH设置为项目工作区文件夹似乎没有效果。这个问题与 #3209 类似。
如何重现问题
- 按照以下方式设置项目:
lib/
flow1/
flow2/
- 在其中一个流程中创建一个Python节点,执行
from lib import ...
操作。 - 执行流程,会出现 ModuleNotFoundError。
环境信息
- 使用
pf -v
查询 promptflow 包版本:
{
"promptflow": "1.12.0",
"promptflow-core": "1.12.0",
"promptflow-devkit": "1.12.0",
"promptflow-tracing": "1.12.0"
}
- 操作系统:MacOS
- Python版本:3.11
- Prompt Flow扩展版本:1.20.0
5条答案
按热度按时间uujelgoq1#
我不确定这是否只是与扩展有关。我在
requirements.txt
文件中尝试添加了一些依赖项,并手动将流程上传到Azure ML,但是计算会话不遵守需求文件,当我部署时,它会以No module named XXX
失败。pbgvytdp2#
西蒙-v-斯威夫特,这与扩展无关。对于Azure门户问题,请随时创建反馈。在提交反馈时,也请附上相关的日志。对于您的情况,我们需要以下日志:
$x_{1c0d_1}^{x}$
dkqlctbz3#
@MingStar let's track the issue in a central place, I've provided a workaround in #3209 , please check if it can help with your case.
yqhsw0fo4#
@D-W ,对于迟来的回复表示歉意。
这个问题实际上是与VS Code扩展有关,我认为它假设流文件被命名为
flow.dag.yaml
,并且单独的流文件必须位于不同的子文件夹中。当我根据您的解决方法重构代码时,PromptFlow VS Code扩展既没有捕获到任何流程,也没有显示任何流程。9gm1akwq5#
你好,MingStar,你提到你已经将你的工作目录添加到了
PYTHONPATH
。你能在命令行中运行
python -c "import sys; print('\n'.join(sys.path))"
来检查路径是否已添加吗?如果没有,你可能需要重新启动会话以使其生效。