导入自定义 python 包时出现 ModuleNotFound 错误

问题描述 投票:0回答:1

我的项目文件位于路径 /Workspace/folder1/subfolder1/myproject

这就是我构建项目文件的方式。

模块文件夹结构:

enter image description here

baseMLPipeline 是我的入口文件,我在其中导入模块目录中的文件。我在模块文件夹中有 .py 文件和 init.py 文件。

当我在 databricks 上运行 baseMLPipeline 笔记本时,它工作正常并且正在成功导入自定义包。但是,当我从 ADF(使用作业集群)触发此笔记本时,它会抛出 “ModuleNotFound” 错误。我是否遗漏或做错了什么?

代码在我导入自定义包的行抛出错误

from modules import test_1

以下是我已经尝试过的步骤:

  1. 将模块文件夹移动到包含主笔记本的同一目录中,即/Workspace/folder1/subfolder1/myproject .

  2. 在我的 .py 文件所在的目录中创建了一个名为 init.py 的空文件。

  3. 在笔记本中,在开头添加以下代码,将Workspace/folder1/subfolder1/myproject文件夹添加到Python路径:

    import sys
    sys.path.append("Workspace/folder1/subfolder1/myproject")
    
azure azure-data-factory databricks data-engineering
1个回答
0
投票

当您使用新的 Job Cluster 时,它会出现此错误,因为它在 Workspace 下没有像您所拥有的 UsersShared 文件夹。

enter image description here

因此,这就是它在 Databricks 中的通用计算中工作而不是在 ADF 中的作业计算(新作业集群)中工作的原因。

在 ADF 中,检查 现有交互式集群 并选择现有的 通用计算

enter image description here

或者,您可以使用 Repo 中的所有文件和笔记本创建一个新存储库,并使用新作业集群运行它。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.