Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Chaque application Databricks peut inclure des dépendances pour Python, Node.jsou les deux. Vous définissez ces dépendances dans des fichiers spécifiques au langage :
- Utilisez un
requirements.txtfichier pour spécifier les packages Python installés avecpip. Voir Définir des dépendances Python avecpip. - Utilisez un
pyproject.tomlfichier pour spécifier les packages Python installés avecuv. Voir Définir des dépendances Python avecuv. - Utilisez un
package.jsonfichier pour spécifier Node.js packages. Consultez Définir Node.js dépendances.
Définir des dépendances Python avec pip
Les applications qui utilisent pip sont fournies avec un ensemble de bibliothèques Python préinstallées. Pour définir des bibliothèques Python supplémentaires, utilisez un requirements.txt fichier. Si des packages répertoriés correspondent à ceux préinstallés, les versions de votre fichier remplacent les valeurs par défaut.
Par exemple:
# 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
Bibliothèques Python préinstallées
Les bibliothèques Python suivantes sont préinstallées pour des applications basées sur pip. Vous n’avez pas besoin de les inclure dans votre requirements.txt , sauf si vous avez besoin d’une autre version.
| Bibliothèque | Version |
|---|---|
| databricks-sql-connector | 3.4.0 |
| Kit de développement logiciel Databricks (SDK) | 0.33.0 |
| mlflow-skinny (version légère de mlflow) | 2.16.2 |
| gradio | 4.44.0 |
| streamlit | 1.38.0 |
| brillant | 1.1.0 |
| tiret | 2.18.1 |
| flask | 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 | 5.24.1 |
| plotly-resampler | 0.10.0 |
Définir des dépendances Python avec uv
Si votre application utilise uv pour la gestion des dépendances, définissez les dépendances Python dans un pyproject.toml fichier au lieu de requirements.txt. Les bibliothèques préinstallées ne sont pas disponibles pour les applications basées sur uv. Vous devez déclarer toutes les dépendances dans votre pyproject.toml. Vous pouvez également spécifier n’importe quelle version de Python à l’aide du requires-python champ, contrairement aux pipapplications basées sur Python 3.11.
Pendant le déploiement, Databricks Apps sélectionne une stratégie d’installation basée sur les fichiers présents :
- Si
requirements.txtexiste, l’application utilisepippour installer des dépendances, peu importe sipyproject.tomlest également présente.requirements.txtest toujours prioritaire. - S’il
requirements.txtn’existe pas et quepyproject.tomletuv.lockexistent, l’application utiliseuvpour installer des dépendances à partir du fichier de verrou.
Le uv programme d’installation crée et gère son propre environnement virtuel. Vous n’avez donc pas besoin de créer un .venv répertoire.
L’exemple suivant montre un minimum pyproject.toml pour une application Databricks :
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
Pour utiliser uv, vous devez inclure un uv.lock fichier en même temps que votre pyproject.toml. Générez-le en exécutant uv lock localement et incluez-le dans votre répertoire d’application.
Définir des dépendances Node.js
Pour définir les bibliothèques Node.js, incluez un fichier package.json à la racine de votre application. Pendant le déploiement, Azure Databricks détecte ce fichier et s’exécute npm install pour installer toutes les dépendances répertoriées dans celle-ci.
Par exemple, un package.json fichier pour une application React à l’aide de Vite peut ressembler à ceci :
{
"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"
}
}
Remarque
Répertorier tous les packages requis pour npm run build sous dependencies, et non devDependencies. Si vous définissez NODE_ENV=production dans vos variables d’environnement, le processus de déploiement ignore l’installation devDependencies.
Éviter les conflits de version
Gardez à l’esprit ce qui suit lorsque vous définissez des dépendances :
- Pour les applications basées sur
pip, le remplacement de packages préinstallés peut entraîner des problèmes de compatibilité si votre version spécifiée diffère considérablement de la version préinstallée. - Testez toujours votre application pour vous assurer que les modifications de version du package n’introduisent pas d’erreurs.
- L’épinglage de versions explicites dans
requirements.txtpermet de maintenir un comportement d’application cohérent entre les déploiements. - Lorsque vous utilisez
uv, incluez unuv.lockfichier pour les installations entièrement reproductibles entre les déploiements.
Installation et gestion des dépendances
Les bibliothèques définies dans requirements.txt, pyproject.tomlet package.json sont installées directement sur le conteneur s’exécutant sur votre calcul dédié. Vous êtes responsable de la gestion et de l'application de correctifs à ces dépendances.
Vous pouvez spécifier des bibliothèques à partir de plusieurs sources dans vos fichiers de dépendance :
- Bibliothèques téléchargées à partir de référentiels publics tels que PyPI et npm
- Référentiels privés qui s’authentifient à l’aide d’identifiants stockés dans les secrets Azure Databricks
- Bibliothèques stockées dans votre
/Volumes/répertoire (par exemple,/Volumes/<catalog>/<schema>/<volume>/<path>)
Installer à partir de référentiels privés
Pour installer des packages à partir d’un référentiel privé, configurez les variables d’environnement pour l’authentification. Par exemple, définissez ce paramètre PIP_INDEX_URL pour qu’il pointe vers votre dépôt privé :
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
La configuration du réseau de votre espace de travail doit autoriser l’accès au référentiel privé. Consultez Configurer la mise en réseau pour Databricks Apps.
Installer des fichiers wheel à partir de volumes de catalogue Unity
Pour installer des packages Python à partir de fichiers wheel stockés dans des volumes de catalogue Unity :
- Ajoutez le volume du catalogue Unity en tant que ressource à votre application. Consultez le volume du catalogue Unity.
- Référencez le chemin d’accès complet du fichier de roue directement dans votre
requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl
Remarque
Les références de variables d’environnement ne sont pas prises en charge dans requirements.txt. Vous devez encoder en dur le chemin du fichier de roue complète.
Pour améliorer la sécurité lors de l’accès aux référentiels de packages externes, utilisez des contrôles de sortie serverless pour restreindre l’accès aux référentiels publics et configurer la mise en réseau privée. Consultez Configurer la mise en réseau pour Databricks Apps.