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

使用Poetry安装Databricks SQL Connector extras后Pytest报ModuleNotFoundError

解决pytest中databricks-sql-connector[sqlalchemy]导入失败问题

排查步骤与解决方案

1. 确保测试环境使用正确的虚拟环境

你正常运行代码没问题,但pytest报错,大概率是测试时没用到安装了databricks-sql-connector[sqlalchemy]的虚拟环境:

  • 不要直接运行pytest,改用poetry启动测试,确保使用正确的虚拟环境:
    poetry run pytest tests/test_dbx.py
    
  • 若仍有问题,先激活虚拟环境再执行测试:
    poetry shell
    pytest tests/test_dbx.py
    
  • 最后重新执行poetry install,确保所有依赖(包括sqlalchemy extras)都安装完整

2. 检查是否存在命名冲突

如果你的src目录下存在名为databricks的文件夹或.py文件,Python会优先导入本地模块,而非第三方包的databricks,从而导致找不到sqlalchemy子模块:

  • 重命名本地的databricks相关文件/文件夹,避免与第三方包重名
  • 可以在测试文件中添加以下代码验证导入路径:
    import databricks
    print(databricks.__file__)
    
    运行后若输出路径不是虚拟环境site-packages中的databricks目录,即可确认是命名冲突问题

3. 调整pytest的pythonpath设置

你的pyproject.toml中把tests也加到了pythonpath,其实无需额外配置——pytest会自动识别tests目录,多余的配置可能打乱导入顺序:
修改为:

[tool.pytest.ini_options]
pythonpath = ["src"]

验证extras依赖是否安装成功

运行以下命令,检查databricks-sql-connector的依赖列表中是否包含sqlalchemy:

poetry run pip show databricks-sql-connector

查看输出的Requires字段,若能找到sqlalchemy说明extras安装成功;若找不到,重新执行poetry add "databricks-sql-connector[sqlalchemy]"完成安装


内容的提问来源于stack exchange,提问作者Merlin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:36:14