无法在 Databricks 中导入上传的 Python wheel

Unable to import uploaded Python wheel in Databricks

Also posted on the official forum,重新发布在这里以提高知名度。

完成了从 here 开始的所有步骤,将自定义 Python 轮子上传到 Databricks。我构建了一个名为 somelongexamplename 的简单测试轮,并使用 Pyhton 3.5.2 将其编译为 .whl。它非常简单,只有一个模块和一种打印 "Hello world".

的方法

我在 Databricks 工作区的共享文件夹中创建了一个库,然后创建了一个自定义集群 (v5.5) 并在该集群上安装了 wheel。下面的屏幕截图显示了集群上安装的库和安装了库的集群。

它在 databricks-cli 上同样可见,如下所示。

运行 连接到测试集群的笔记本中的以下命令也显示轮子安装正确。

%sh
/databricks/python/bin/pip freeze

然而当我运行:

import somelongexamplename

我得到:

ImportError                               Traceback (most recent call last)
<command-194690> in <module>()
----> 1 import somelongexamplename

ImportError: No module named 'somelongexamplename'

有人知道是什么原因造成的吗?我似乎找不到任何其他提供解决方案的在线资源。

它工作正常。我安装了一个 wheel pacakage 并尝试导入。导入成功了。只需尝试分离并重新连接笔记本。

原来问题一直在我的 setup.py 文件中。我在 setup 方法中配置了错误的 packages 值。

最初是这样的:

setup(
    ...
    packages=find_packages(where='somelongexamplename'),
    package_dir={'': 'somelongexamplename'},
    ...
)

改成这个对我来说是固定的:

setup(
    ...
    packages=['somelongexamplename'],
    ...
)

如果您遇到此问题,请确保您的轮子配置正确。