Notebook-szintű Python-könyvtárak

A jegyzetfüzet-hatókörű kódtárak lehetővé teszik a jegyzetfüzetekre jellemző egyéni Python-környezetek létrehozását, módosítását, mentését, újrafelhasználását és megosztását. Jegyzetfüzet-hatókörű tár telepítésekor csak az aktuális jegyzetfüzet és a jegyzetfüzethez társított feladatok férhetnek hozzá az adott tárhoz. Az ugyanahhoz a fürthöz csatolt többi notebookra nincsenek hatással.

A jegyzetfüzet-hatókörű kódtárak nem maradnak meg a munkamenetek között. A jegyzetfüzethez tartozó könyvtárakat minden munkamenet kezdetén újra kell telepítenie, illetve valahányszor a jegyzetfüzet leválik a fürtről.

A Databricks azt javasolja, hogy a %pip magic paranccsal telepítsen jegyzetfüzet-hatókörű Python-kódtárakat. Az 5-ös vagy újabb környezeti verziót futtató szerver nélküli jegyzetfüzetekben a gyorsabb telepítés érdekében a %uv pip is használhatja.

Feladatokként ütemezett jegyzetfüzetekben is használható %pip . Ha egy Scala-, SQL- vagy R-notebookban kell kezelnie a Python-környezetet, használja a %python varázsparancsot a %pip-vel együtt.

A jegyzetfüzetre korlátozott könyvtártelepítésekkel végzett munka során előfordulhat, hogy nagyobb forgalmat észlel a vezérlőcsomóponton. Lásd: Az illesztőcsomópont méretére vonatkozó javaslatok.

A fürthöz csatlakoztatott összes notebook könyvtárainak telepítéséhez használjon fürtkönyvtárakat. Lásd Számítási hatókörű könyvtárak.

A Python-kódtárak Databricksben való telepítéséhez elérhető lehetőségek átfogó áttekintéséért tekintse meg a Python-környezetkezelést.

Kódtárak kezelése parancsokkal %pip

A %pip parancs egyenértékű a pip paranccsal, és ugyanazt az API-t támogatja. Az alábbi szakaszok példákat mutatnak be arra, hogyan használhat %pip parancsokat a környezet kezeléséhez. A Python-csomagok telepítésével pipkapcsolatos további információkért tekintse meg a pip telepítési dokumentációját és a kapcsolódó oldalakat.

Fontos

  • %pip parancsok nem indítják újra automatikusan a Python folyamatot. Ha új csomagot telepít vagy frissít egy meglévő csomagot, előfordulhat, hogy az új csomagok megtekintéséhez kell használnia dbutils.library.restartPython() . Lásd: A Python-folyamat újraindítása az Azure Databricksben.
  • Az alapvető Python-csomagok (például az IPython) %pip frissítése, módosítása vagy eltávolítása bizonyos funkcióknak a várt módon történő leállását okozhatja. Ha ilyen problémákat tapasztal, állítsa vissza a környezetet a fürt újraindításával vagy új munkamenet indításával.

Gyorsabb telepítés a %uv pip

Megjegyzés

%uv pip csak az 5-ös vagy újabb környezetverziót futtató kiszolgáló nélküli notebookokban érhető el. A klasszikus számítási környezetek és a kiszolgáló nélküli környezet korábbi verziói nem támogatják a(z) %uv pip elemet.

A %uv pip magic parancs gyorsabb alternatívája a %pip. %uv pip működését a uv csomagkezelő biztosítja, és ugyanazt a notebook virtuális környezetet használja, mint %pip, így az egyik eszközzel telepített csomagok a másikban is elérhetők.

%uv pip gyorsabb, mint %pip az olyan telepítések és írásvédett műveletek esetében, mint a list. Ez kiválóan alkalmas az iterációhoz egy környezeti specifikáción felül.

A %uv pip támogatja a szabványos pip alparancsokat: install, uninstall, list, show, freeze, check és tree.

%uv pip install simplejson
%uv pip list

Ezen a lapon található egyéb telepítési minták (kötetek, munkaterületfájlok, követelményfájlok, verziókövetés, privát adattárak) együttműködnek.%uv pip A példák bármelyikében lecserélheti a(z) %pip elemet erre: %uv pip.

%uv pip Korlátozások

  • %uv pip uninstall A kiszolgáló nélküli környezetben előre telepített kódtárak nem távolíthatók el teljesen. Csak a csomag metaadatai törlődnek. A mögöttes fájlok a fájlrendszeren maradnak, és a csomag továbbra is importálható.
  • %uv pip nem ellenőrzi az előre telepített kódtárak függőségi ütközéseit.
  • A(z) %uv pip parancsok futtatása után előfordulhat, hogy a notebook Környezet oldalsó paneljén egyes előre telepített könyvtárak felhasználó által telepítettként jelennek meg. Ez egy megjelenítési probléma, és nincs hatással a csomag működésére.
  • %uv pip gyors interaktív iterációhoz készült. A jegyzetfüzet reprodukálható környezetének beállításához adjon hozzá függőségeket a jegyzetfüzet Környezet oldali paneljén.

Egy könyvtár telepítése ezzel: %pip

%pip install matplotlib==3.8.4

Python wheel csomag telepítése ezzel: %pip

%pip install /path/to/my_package.whl

Kódtár eltávolítása a(z) %pip használatával

Megjegyzés

Nem távolíthat el olyan kódtárat, amely szerepel a Databricks Runtime kiadási megjegyzésekben: verziók és kompatibilitás között, illetve olyan kódtárat sem, amely fürtkódtárként lett telepítve. Ha a Databricks Runtime-ban vagy a fürtön telepített verziótól eltérő erőforrástár-verziót telepített, a tárat visszaállíthatja %pip uninstall a Databricks Runtime alapértelmezett verziójára vagy a fürtre telepített verzióra, de nem használhat %pip parancsot a Databricks Runtime-ban vagy a fürtön telepített tár verziójának eltávolításához.

%pip uninstall -y matplotlib

A -y beállítás megadása kötelező.

Kódtár telepítése verziókövetési rendszerből a %pip

%pip install git+https://github.com/databricks/databricks-cli

Paramétereket adhat hozzá az URL-címhez, hogy olyan dolgokat adjon meg, mint a verzió vagy a git alkönyvtár. További információkért és más verziókövetési rendszerek használatával kapcsolatos példákért tekintse meg a VCS támogatását .

Privát csomag telepítése a Databricks secrets által kezelt hitelesítő adatokkal %pip

A pip támogatja a magánforrásokból származó csomagok telepítését alapszintű hitelesítési, beleértve a privát verziókövetési rendszereket és a privát csomagtárakat, például Nexus és Artifactory. A titkos kódok kezelése a Databricks Titkos kódok API-val érhető el, amely lehetővé teszi a hitelesítési jogkivonatok és jelszavak tárolását. A DBUtils API használatával hozzáférhet a jegyzetfüzet titkos kulcsaihoz. Vegye figyelembe, hogy varázsparancsokban is használható $variables .

Ha privát tárolóból szeretne csomagot telepíteni, adja meg a tároló URL-címét a --index-url%pip install kapcsolójával, vagy adja hozzá a(z) pip konfigurációs fájlhoz itt: ~/.pip/pip.conf.

token = dbutils.secrets.get(scope="scope", key="key")
%pip install --index-url https://<user>:$token@<your-package-repository>.com/<path/to/repo> <package>==<version> --extra-index-url https://pypi.org/simple/

Hasonlóképpen használhat titkos kódkezelést varázsparancsokkal a privát csomagok verziókövetési rendszerekből való telepítéséhez.

token = dbutils.secrets.get(scope="scope", key="key")
%pip install git+https://<user>:$token@<gitprovider>.com/<path/to/repo>

Csomag telepítése a DBFS-ből a következővel: %pip

Fontos

A munkaterület bármely felhasználója módosíthatja a DBFS-ben tárolt fájlokat. Az Azure Databricks azt javasolja, hogy a fájlokat munkaterületeken vagy Unity Catalog-köteteken tárolja.

A DBFS-en mentett privát csomag telepítésére is használható %pip .

Amikor feltölt egy fájlt a DBFS-be, az automatikusan átnevezi a fájlt, és aláhúzásjelekre cseréli a szóközöket, az időszakokat és a kötőjeleket. Python wheel-fájlok esetén a pip megköveteli, hogy a fájlnév a verziószámban pontokat használjon (például 0.1.0), valamint szóközök vagy aláhúzásjelek helyett kötőjeleket, ezért ezek a fájlnevek nem változnak.

%pip install /Volumes/<catalog>/<schema>/<volume>/mypackage-0.0.1-py3-none-any.whl

Csomag telepítése egy kötetről a %pip használatával

Fontos

Ez a funkció a nyilvános előzetes verzióban érhető el.

A Databricks Runtime 13.3 LTS és újabb verzióiban a %pip elemet használhatja egy köteten tárolt privát csomag telepítésére.

Amikor feltölt egy fájlt egy kötetre, az automatikusan átnevezi a fájlt, szóközök, pontok és kötőjelek helyett aláhúzásjelekkel. Python wheel-fájlok esetén a pip megköveteli, hogy a fájlnév a verziószámban pontokat használjon (például 0.1.0), valamint szóközök vagy aláhúzásjelek helyett kötőjeleket, ezért ezek a fájlnevek nem változnak.

%pip install /Volumes/<catalog>/<schema>/<path-to-library>/mypackage-0.0.1-py3-none-any.whl

Munkaterületfájlként tárolt csomag telepítése a %pip

A Databricks Runtime 11.3 LTS és újabb verzióiban a %pip használatával telepíthet egy munkaterületfájlként mentett privát csomagot.

%pip install /Workspace/<path-to-whl-file>/mypackage-0.0.1-py3-none-any.whl

Kódtárak mentése egy követelményfájlba

%pip freeze > /Workspace/shared/prod_requirements.txt

A fájl elérési útjában szereplő alkönyvtáraknak már létezniük kell. Ha futtatja %pip freeze > /Workspace/<new-directory>/requirements.txt, a parancs meghiúsul, ha a könyvtár /Workspace/<new-directory> még nem létezik.

Kódtárak telepítéséhez használjon követelményfájlt

A követelmények fájlja tartalmazza a telepített pipcsomagok listáját. Egy követelményfájl használatára példa:

:::megjegyzés Kiszolgáló nélküli kompatibilitás

Javasoljuk, hogy távolodjon el a nem rögzített %pip install parancsoktól, mivel nem kompatibilisek a Databricks kiszolgáló nélküli számítási architektúrájával. A pin to ==<version> használható helyette.

:::

%pip install -r /Workspace/shared/prod_requirements.txt

A fájlokkal kapcsolatos további információkért lásd a requirements.txt című témakört.

Illesztőprogram-csomópont méretre vonatkozó javaslatok

A jegyzetfüzet-hatókörű kódtárak használata nagyobb forgalmat eredményezhet az illesztőprogram-csomópont felé, mivel úgy működik, hogy a környezet konzisztens legyen a végrehajtó csomópontok között.

Ha 10 vagy több csomópontot tartalmazó fürtöt használ, a Databricks az illesztőprogram-csomópont minimális követelményeként ezeket a specifikációkat javasolja:

  • 100 csomópontos CPU-fürt esetén használja a Standard_D8ds_v5.
  • 10 csomópontból álló GPU-fürt esetén használja a Standard_NC12 típust.

Nagyobb fürtök esetén használjon nagyobb illesztőcsomópontot.

A %pip, %sh pip és !pip közötti különbségek

%sh és ! végrehajt egy rendszerhéjparancsot egy jegyzetfüzetben; az előbbi egy Databricks segédvarázsló parancs , míg az utóbbi az IPython egyik funkciója. A pip a %pip rövidítése, ha a automagic engedélyezve van, ami alapértelmezés szerint így van az Azure Databricks Python-notebookokban.

A Databricks Runtime 11.3 LTS és újabb verzióiban a %pip, a %sh pip és a !pip egyaránt jegyzetfüzet-hatókörű Python-könyvtárként telepít egy könyvtárat. A Databricks Runtime 10.4 LTS és az annál korábbi verziók esetén a Databricks a notebook-hatókörű könyvtárak telepítéséhez csak a %pip vagy a pip használatát javasolja. A %sh pip és a !pip viselkedése nem következetes a Databricks Runtime 10.4 LTS-ben és az annál korábbi verziókban.

Ismert problémák

  • A Databricks Runtime 9.1 LTS-en a jegyzetfüzet-hatókörű kódtárak nem kompatibilisek a kötegelt streamelési feladatokkal. A Databricks inkább fürtkódtárak vagy az IPython-kernel használatát javasolja.