我有一个名为
my_sdk.whl
的轮子包,是我在本地开发和构建的。现在,我尝试将其上传到
dbfs:/libraries/my_sdk.whl
路径下的 databricks 文件系统,并使用“计算”页面中的“库”选项卡将其安装在我的交互式集群中。重新启动集群并成功安装后,我尝试在 databricks 存储库笔记本中使用它。
import my_sdk
在运行命令...状态
中执行上述代码需要10-20分钟然后我会收到以下错误:
OSError: [Errno 5] Input/output error: '/Workspace/Repos/my-userxxx/path/to/notebooks'
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
File <command-3809752991307962>, line 1
----> 1 import my_sdk
File <frozen importlib._bootstrap>:1027, in _find_and_load(name, import_)
File <frozen importlib._bootstrap>:1002, in _find_and_load_unlocked(name, import_)
File <frozen importlib._bootstrap>:945, in _find_spec(name, path, target)
File <frozen importlib._bootstrap_external>:1439, in find_spec(cls, fullname, path, target)
File <frozen importlib._bootstrap_external>:1411, in _get_spec(cls, fullname, path, target)
File <frozen importlib._bootstrap_external>:1548, in find_spec(self, fullname, target)
File <frozen importlib._bootstrap_external>:1591, in _fill_cache(self)
OSError: [Errno 5] Input/output error: '/Workspace/Repos/my-userxxx/path/to/notebooks'
知道我为什么会收到这个吗?
附加信息:
python -m build --wheel
"""Setup.py script for packaging project."""
from setuptools import setup, find_packages
import os
def read_pip_requirements(filename: str):
filepath = os.path.join(os.path.dirname(__file__), filename)
with open(filepath) as f:
return f.readlines()
if __name__ == '__main__':
sdk_version = os.environ.get("BUILD_NUMBER")
if sdk_version is None:
raise ValueError("SDK Version Cannot be Null. Did you initialized the BUILD_NUMBER variable?")
setup(
name="my_sdk",
version=sdk_version,
package_dir={"": "src"},
packages=find_packages(where="src", include=["my_sdk*"]),
description="Software Development Kit for My Project",
install_requires=["pyspark==3.4.1"]
)
我尝试了以下操作,但在导入过程中我仍然面临长时间运行的单元问题,并且在等待后会随机收到操作系统错误或成功导入。
%pip freeze
命令,它显示该软件包已安装@file:///local_disk0/tmp/addedFile375359a4e2e749fba4206df7c97999b07096403526362698460/my_sdk-10003-py3-none-any.whl
我注意到的一件事是,当我使用单个单元运行笔记本(不在 Repos 文件夹下)时
import my_sdk
,它可以毫无问题地导入包。我相信这与microsoft 文档中提到的库优先级有关。基于第二个优先级Repo(Git 文件夹)根目录中的库(仅限 Repos)。这可能是因为我的 Repos 工作区中的根文件夹同时包含 adf 资源和 databricks 资源,这就是为什么 databricks 需要花费大量时间来搜索匹配的 python 包。