Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un'app Databricks può includere dipendenze Python, dipendenze Node.js o entrambe. Dichiari le dipendenze nei file specifici del linguaggio che Azure Databricks installa quando distribuisci l'app:
- Usa un file
requirements.txtper i pacchetti Python installati conpip. Vedere Definire le dipendenze python conpip. - Utilizzare un file
pyproject.tomlper i pacchetti Python installati conuv. Vedere Definire le dipendenze python conuv. - Utilizza un file
package.jsonper i pacchetti Node.js installati connpmopnpm. Vedere Definire le dipendenze Node.js.
Definire le dipendenze python con pip
Le app che usano pip sono dotate di un set di librerie Python preinstallate. Per definire librerie Python aggiuntive, usare un requirements.txt file. Se uno dei pacchetti elencati corrisponde a quelli preinstallati, le versioni nel file sostituiscono le impostazioni predefinite.
Le app con scalabilità orizzontale (Beta) convertite da app standard possono rifiutare esplicitamente le librerie preinstallate ed eseguite in un'immagine pulita del sistema operativo di base. Vedi Disattivare le librerie Python preinstallate per le app Databricks.
Per esempio:
# 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
Librerie Python preinstallate
Le app basate su pip includono le seguenti librerie Python preinstallate. Non è necessario aggiungerli al tuo requirements.txt, a meno che non sia necessaria una versione diversa.
| Libreria | Versione |
|---|---|
| databricks-sql-connector | 3.4.0 |
| Databricks SDK | 0.33.0 |
| mlflow-skinny | 2.16.2 |
| gradio | 4.44.0 |
| streamlit | 1.38.0 |
| brillante | 1.1.0 |
| trattino | 2.18.1 |
| flacone | 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-components | 0.14.4 |
| dash-bootstrap-components | 1.6.0 |
| plotly (software di visualizzazione dati) | 5.24.1 |
| plotly-resampler | 0.10.0 |
Definire le dipendenze python con uv
Se l'app usa uv per la gestione delle dipendenze, definire le dipendenze Python in un pyproject.toml file anziché requirements.txt. Le app basate su uv non includono librerie preinstallate, quindi è necessario dichiarare tutte le dipendenze nel file pyproject.toml. È anche possibile specificare qualsiasi versione Python usando il requires-python campo , a differenza pipdelle app basate su , che usano Python 3.11.
Lo stesso vale per le app con scalabilità orizzontale che hanno rifiutato esplicitamente le librerie preinstallate. Vedi Disattivare le librerie Python preinstallate per le app Databricks.
Durante la distribuzione, Databricks Apps seleziona una strategia di installazione in base ai file presenti:
- Se
requirements.txtesiste, l'app usapipper installare le dipendenze, indipendentemente dal fatto chepyproject.tomlsia presente anche.requirements.txtha sempre la precedenza. - Se
requirements.txtnon esiste e siapyproject.tomlsiauv.lockesistono, l'app usauvper installare le dipendenze dal file di blocco.
Il uv programma di installazione crea e gestisce il proprio ambiente virtuale, quindi non è necessario creare una .venv directory.
L'esempio seguente mostra un valore minimo pyproject.toml per un'app Databricks:
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
Per usare uv, è necessario includere un uv.lock file insieme a pyproject.toml. Generarlo eseguendo uv lock in locale e includerlo nella directory dell'app.
Definire le dipendenze Node.js
Per definire le librerie Node.js, includere un file package.json nella directory principale dell'applicazione. Azure Databricks supporta sia npm e pnpme seleziona la gestione pacchetti in base al file di blocco incluso:
- Se
pnpm-lock.yamlè presente, l'app usapnpm. Vedere Usarepnpm. - In caso contrario, l'app usa
npm. -
pnpm-lock.yamlSe epackage-lock.jsonsono presenti,pnpmha la precedenza.
Ad esempio, un package.json file per un'app React che usa Vite potrebbe essere simile al seguente:
{
"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"
}
}
Annotazioni
Elencare tutti i pacchetti necessari per il passaggio di compilazione in dependencies, non devDependencies. Se si impostano NODE_ENV=production nelle variabili di ambiente, il processo di distribuzione ignora l'installazione di devDependencies.
Usa pnpm
Per compilare con pnpm, includere un file pnpm-lock.yaml accanto al tuo package.json. Generarlo eseguendo pnpm install in locale e includerlo nella directory dell'app. Azure Databricks fornisce pnpm tramite Corepack.
Si notino i requisiti seguenti per pnpm le app:
- Le dipendenze vengono installate con
pnpm install --frozen-lockfile, quindipnpm-lock.yamldevono rimanere sincronizzate conpackage.json. In caso di deviazione, la compilazione non riesce anziché aggiornare il file di blocco. Rigenerare il file di blocco conpnpm installdopo aver modificato le dipendenze. - È necessario specificare il comando start in
app.yaml. A differenza delle appnpm, le apppnpmnon usano uno scriptstartpredefinito come fallback. Vedere Configurare l'esecuzione dell'app Databricks conapp.yaml.
Per i progetti pnpm dell'area di lavoro (in cui è presente un file pnpm-workspace.yaml), alcuni comandi app.yaml vengono eseguiti ricorsivamente pnpm. Ad esempio, un passaggio di compilazione o avvio potrebbe eseguire pnpm -r run build. Questi comandi devono chiamare corepack pnpm invece di pnpm in modo che i comandi annidati vengano risolti correttamente.
Evitare conflitti di versione
Seguire queste linee guida per evitare conflitti di versione:
- Per le app
pip-basate, la sostituzione dei pacchetti preinstallati può causare incompatibilità se la versione specificata differisce significativamente da quella preinstallata. - Testare sempre l'app per verificare che le modifiche apportate alla versione del pacchetto non introducono errori.
- L'aggiunta di versioni esplicite in
requirements.txtconsente di mantenere un comportamento coerente delle app tra le distribuzioni. - Quando si utilizza
uv, includere un fileuv.lockper installazioni pienamente riproducibili tra diversi ambienti di distribuzione.
Installazione e gestione delle dipendenze
Azure Databricks installa le librerie definite in requirements.txt, pyproject.tomle package.json direttamente nel contenitore in esecuzione nel calcolo dedicato. È tua responsabilità gestire e applicare patch a queste dipendenze.
È possibile specificare librerie da più origini nei file di dipendenza:
- Librerie scaricate da repository pubblici come PyPI e npm
- Repository privati che eseguono l'autenticazione usando le credenziali archiviate nei segreti di Azure Databricks
- Librerie archiviate nella
/Volumes/directory (ad esempio,/Volumes/<catalog>/<schema>/<volume>/<path>)
Eseguire l'installazione da repository privati
Per installare i pacchetti da un repository privato, configurare le variabili di ambiente per l'autenticazione. Ad esempio, imposta PIP_INDEX_URL in modo che punti al tuo repository privato:
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
La configurazione di rete dell'area di lavoro deve consentire l'accesso al repository privato. Vedere Configurare la rete per le app di Databricks.
Installare i file wheel nei volumi di Unity Catalog
Per installare i pacchetti Python dai file wheel archiviati nei volumi del catalogo Unity:
- Aggiungi il volume del catalogo Unity come risorsa per la tua app. Vedere Volume del catalogo Unity.
- Fare riferimento al percorso del file full wheel direttamente in
requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl
Annotazioni
I riferimenti alle variabili di ambiente non sono supportati in requirements.txt. È necessario codificare in modo esplicito il percorso completo del file wheel.
Per migliorare la sicurezza quando si accede ai repository di pacchetti esterni, usare i controlli in uscita serverless per limitare l'accesso ai repository pubblici e configurare la rete privata. Vedere Configurare la rete per le app di Databricks.