Laste opp Python-biblioteker¶
Denne guiden viser hvordan du legger en wheel-fil (f.eks. openpyxl) på et UC Volume slik at scripts/notebooks kan installere den uten internett.
Forutsetninger¶
- Du har tilgang til et Volume under et katalog/schema (f.eks.
dbfs:/Volumes/eksempelteam_dev_green/analyst_default/wheels). - Databricks CLI
1) Hent wheel-filen lokalt¶
- Last ned ønsket wheel på din maskin (f.eks.
openpyxl-3.1.5-py2.py3-none-any.whl). - Med
pip:
ARM vs. x86_64
Databricks-clustere forventer vanligvis Linux x86_64-wheels, mens mange utviklere jobber på Mac med ARM64. Dette er uproblematisk for universelle wheels som py3-none-any, men pakker med "native" kode må matches mot riktig plattform og Python-versjon.
Hvis du trenger en plattformspesifikk wheel, last den ned eksplisitt for Linux x86_64 i stedet for å bruke det maskinen din foreslår:
pip download \
--only-binary=:all: \
--platform manylinux2014_x86_64 \
--implementation cp \
--python-version 313 \
<pakke>==<versjon> \
-d wheels/
Bytt ut 313 med Python-versjonen som matcher Databricks-runtimen din. En macosx_arm64-wheel vil ikke kunne installeres på clusteret.
2) Opprett en mappe for dependencies i Volume¶
- I UI: Catalog → velg katalog/schema → Volumes → lag Volume
wheels. - Resultatsti:
dbfs:/Volumes/<catalog>/<schema>/wheels.
3) Last opp wheel til Volume¶
Med Databricks CLI¶
4) Bruk wheel i notebooks/kode¶
-
I
bundles/excel_ingest/notebooks/01_ingest_excel.pyipadda-databrikkerinstalleres wheelene lokalt på driveren fra Volume. Sett variableneopenpyxl_whl_pathoget_xmlfile_whl_pathtil Volume-stiene (f.eks.dbfs:/Volumes/<catalog>/<schema>/wheels/deps/openpyxl-3.1.5-py2.py3-none-any.whl). -
Notebooken gjør deretter:
Dette gjør wheels tilgjengelige for pandas/openpyxl i samme runtime.local_whls = [ to_local_volume_path(et_xmlfile_whl_path), to_local_volume_path(openpyxl_whl_path), ] extra_lib_dir = tempfile.mkdtemp(prefix="openpyxl_whl_") for whl in local_whls: subprocess.check_call( [ sys.executable, "-m", "pip", "install", "--no-deps", "--target", extra_lib_dir, whl, ], ) if extra_lib_dir not in sys.path: sys.path.insert(0, extra_lib_dir) importlib.invalidate_caches()
Tips¶
- Hold en egen
deps-mappe per prosjekt/schema for å slippe navnekollisjoner. - Versjoner filer tydelig (f.eks.
openpyxl-3.1.5-py2.py3-none-any.whl). - Clustere som skal installere fra volume må defineres med:
data_security_mode:SINGLE_USERellerUSER_ISOLATION.