promptflow [BUG] [VSCode扩展]无法在流程目录之外导入模块

2exbekwf  于 2个月前  发布在  Vscode
关注(0)|答案(5)|浏览(25)

描述问题

我的项目中有2个流程,它们都需要在流程工作目录之外导入项目共享代码(项目模块为 lib )。当我这样做时,VS Code扩展总是无法加载Python节点,显示错误信息 (ModuleNotFoundError) No module named 'lib'。尝试在Python节点中点击“使用高级选项重新生成”后将PYTHONPATH设置为项目工作区文件夹似乎没有效果。这个问题与 #3209 类似。

如何重现问题

  1. 按照以下方式设置项目:
lib/
flow1/
flow2/
  1. 在其中一个流程中创建一个Python节点,执行 from lib import ... 操作。
  2. 执行流程,会出现 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
uujelgoq

uujelgoq1#

我不确定这是否只是与扩展有关。我在requirements.txt文件中尝试添加了一些依赖项,并手动将流程上传到Azure ML,但是计算会话不遵守需求文件,当我部署时,它会以No module named XXX失败。

pbgvytdp

pbgvytdp2#

西蒙-v-斯威夫特,这与扩展无关。对于Azure门户问题,请随时创建反馈。在提交反馈时,也请附上相关的日志。对于您的情况,我们需要以下日志:

$x_{1c0d_1}^{x}$

dkqlctbz

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.

yqhsw0fo

yqhsw0fo4#

@D-W ,对于迟来的回复表示歉意。
这个问题实际上是与VS Code扩展有关,我认为它假设流文件被命名为flow.dag.yaml,并且单独的流文件必须位于不同的子文件夹中。当我根据您的解决方法重构代码时,PromptFlow VS Code扩展既没有捕获到任何流程,也没有显示任何流程。

9gm1akwq

9gm1akwq5#

你好,MingStar,你提到你已经将你的工作目录添加到了PYTHONPATH
你能在命令行中运行python -c "import sys; print('\n'.join(sys.path))"来检查路径是否已添加吗?
如果没有,你可能需要重新启动会话以使其生效。

相关问题