Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Varje Databricks-app kan innehålla beroenden för Python, Node.jseller båda. Du definierar dessa beroenden i språkspecifika filer:
- Använd en
requirements.txtfil för att ange Python-paket installerade medpip. Se Definiera Python-beroenden medpip. - Använd en
pyproject.tomlfil för att ange Python-paket installerade meduv. Se Definiera Python-beroenden meduv. - Använd en
package.jsonfil för att ange Node.js paket. Se även Definiera Node.js-beroenden.
Definiera Python-beroenden med pip
Appar som använder pip levereras med en uppsättning förinstallerade Python-bibliotek. Om du vill definiera ytterligare Python-bibliotek använder du en requirements.txt fil. Om några paket i listan matchar förinstallerade, åsidosätter versionerna i filen standardvärdena.
Till exempel:
# Override default version of dash
dash==2.10.0
# Add additional libraries not pre-installed
requests==2.31.0
numpy==1.24.3
# Specify a compatible version range
scikit-learn>=1.2.0,<1.3.0
Förinstallerade Python-bibliotek
Följande Python-bibliotek är förinstallerade för pip-baserade appar. Du behöver inte inkludera dem i din requirements.txt om du inte behöver en annan version.
| Bibliotek | Utgåva |
|---|---|
| databricks-sql-connector | 3.4.0 |
| Databricks SDK | 0.33.0 |
| mlflow-skinny | 2.16.2 |
| gradio | 4.44.0 |
| streamlit | 1.38.0 |
| glänsande | 1.1.0 |
| tankstreck | 2.18.1 |
| flaska | 3.0.3 |
| fastapi | 0.115.0 |
| uvicorn[standard] | 0.30.6 |
| gunicorn | 23.0.0 |
| huggingface-hub | 0.35.3 |
| dash-ag-grid | 31.2.0 |
| dash-mantine-komponenter | 0.14.4 |
| dash-bootstrap-components | 1.6.0 |
| plotly | 5.24.1 |
| plotly-resampler | 0.10.0 |
Definiera Python-beroenden med uv
Om appen använder uv för beroendehantering definierar du Python-beroenden i en pyproject.toml fil i stället för requirements.txt. Förinstallerade bibliotek är inte tillgängliga för uv-baserade appar. Du måste deklarera alla beroenden i pyproject.toml. Du kan också ange vilken Python-version som helst med hjälp requires-python av fältet, till skillnad från pip-baserade appar som använder Python 3.11.
Under distributionen väljer Databricks Apps en installationsstrategi baserat på vilka filer som finns:
- Om
requirements.txtdet finns använder appenpipför att installera beroenden, oavsett ompyproject.tomldet också finns.requirements.txthar alltid företräde. - Om
requirements.txtinte finns och bådepyproject.tomlochuv.lockfinns, använder appenuvför att installera beroenden från låsfilen.
Installationsprogrammet uv skapar och hanterar en egen virtuell miljö, så du behöver inte skapa en .venv katalog.
I följande exempel visas ett minimalt pyproject.toml för en Databricks-app:
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
Om du vill använda uvmåste du inkludera en uv.lock fil tillsammans med din pyproject.toml. Generera den genom att köra uv lock lokalt och inkludera den i appens katalog.
Definiera Node.js beroenden
Om du vill definiera Node.js bibliotek inkluderar du en package.json fil i appens rot. Under distributionen identifierar Azure Databricks den här filen och kör npm install för att installera alla beroenden som anges i den.
En fil för en React-app som använder Vite kan till exempel package.json se ut så här:
{
"name": "react-fastapi-app",
"version": "1.0.0",
"private": true,
"type": "module",
"scripts": {
"build": "npm run build:frontend",
"build:frontend": "vite build frontend"
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"typescript": "^5.0.0",
"vite": "^5.0.0",
"@vitejs/plugin-react": "^4.2.0",
"@types/react": "^18.2.0",
"@types/react-dom": "^18.2.0"
}
}
Anmärkning
Visa en lista över alla paket som krävs för npm run build under dependencies, inte devDependencies. Om du anger NODE_ENV=production i miljövariablerna hoppar distributionsprocessen över installationen devDependencies.
Undvik versionskonflikter
Tänk på följande när du definierar beroenden:
- För
pip-baserade appar kan åsidosätta förinstallerade paket orsaka kompatibilitetsproblem om den angivna versionen skiljer sig avsevärt från den förinstallerade. - Testa alltid din app för att se till att paketversionsändringar inte medför fel.
- Genom att fästa explicita versioner i
requirements.txtkan du upprätthålla konsekvent appbeteende mellan distributioner. - När du använder
uv, inkludera enuv.lock-fil för fullt reproducerbara installationer vid utplaceringar.
Installation och hantering av beroenden
Bibliotek som definieras i requirements.txt, pyproject.tomloch package.json installeras direkt på containern som körs på din dedikerade beräkning. Du ansvarar för att hantera och korrigera dessa beroenden.
Du kan ange bibliotek från flera källor i beroendefilerna:
- Bibliotek som laddats ned från offentliga lagringsplatser som PyPI och npm
- Privata lagringsplatser som autentiserar med autentiseringsuppgifter som lagras i Azure Databricks-hemligheter
- Bibliotek som lagras i din
/Volumes/katalog (till exempel/Volumes/<catalog>/<schema>/<volume>/<path>)
Installera från privata lagringsplatser
Om du vill installera paket från en privat lagringsplats konfigurerar du miljövariabler för autentisering. Ange PIP_INDEX_URL till exempel att peka på din privata lagringsplats:
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
Nätverkskonfigurationen för arbetsytan måste tillåta åtkomst till den privata lagringsplatsen. Se Konfigurera nätverk för Databricks-appar.
Installera hjulfiler från Unity Catalog-volymer
Så här installerar du Python-paket från hjulfiler som lagras i Unity Catalog-volymer:
- Lägg till Unity Catalog-volymen som en resurs i din app. Se Unity Catalog volym.
- Referera till den fullständiga filsökvägen direkt i :
requirements.txt
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl
Anmärkning
Miljövariabelreferenser stöds inte i requirements.txt. Du måste hårdkoda filsökvägen för hela hjulet.
För att förbättra säkerheten vid åtkomst till externa paketlagringsplatser använder du serverlösa utgående kontroller för att begränsa åtkomsten till offentliga lagringsplatser och konfigurera privata nätverk. Se Konfigurera nätverk för Databricks-appar.