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

Databricks作业中Python Wheel包遇ModuleNotFoundError问题求助

解决ModuleNotFoundError: No module named 'my_code'问题

1. 先确认my_code是合法的Python包

  • 检查my_code目录下有没有__init__.py文件(空文件也行),没有的话立刻创建一个。setuptools.find_packages()只会把包含这个文件的目录识别为Python包。

2. 验证打包逻辑是否能识别到my_code

  • 本地先跑一遍python setup.py bdist_wheel生成Wheel包,或者用pip install -e .安装开发版,然后打开Python交互环境试import my_code:
    • 如果本地也报错,说明打包时根本没把my_code包含进去,直接看下一步调整setup.py;
    • 如果本地能正常导入,问题大概率出在Databricks作业的配置上。

3. 强制指定要打包的包

如果find_packages()没自动识别到my_code,直接在setup.py里显式列出所有需要打包的模块:

import setuptools
import test_calcular
setuptools.setup(
    name='test_calcular',
    version= test_calcular.__version__,
    author= test_calcular.__autor__,
    description= "Prueba sobre empaquetar Python en Databricks",
    # 显式列出所有要打包的包
    packages=['test_calcular', 'my_code'],
    # 或者用find_packages的include参数限定范围
    # packages=setuptools.find_packages(include=['test_calcular', 'my_code']),
    entry_points={
        'group_1': 'run=test_calcular.__main__:main'
    },
    install_requires=[
        'setuptools'
    ]
)

4. 检查代码里的导入写法

  • 确保代码用的是绝对导入:比如import my_code或者from my_code import 你的类;如果用相对导入(比如from .my_code import xxx),要保证运行时的上下文符合包层级关系。
  • Databricks安装Wheel包后,模块会放到Python的site-packages目录,绝对导入是最稳妥的写法。

5. 确认Databricks作业的Wheel包安装正确

  • 检查作业配置里是否正确上传并指定了Wheel包作为依赖;可以在作业里加一个前置步骤,运行pip list查看是否有test_calcular包,确认包内容里包含my_code模块。

6. 检查打包后的Wheel内容

  • 生成Wheel包后,用unzip -l test_calcular-xxx.whl命令查看内部文件结构,确认里面有my_code目录和对应的.py文件。如果没有,说明打包逻辑还是有问题,回到前面的步骤调整。

内容的提问来源于stack exchange,提问作者Moisés

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:42:36