Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una aplicación de Databricks puede incluir Python dependencias, Node.js dependencias o ambas. Se declaran dependencias en archivos específicos del lenguaje que Azure Databricks instala al implementar la aplicación:
- Use un archivo
requirements.txtpara los paquetes de Python instalados conpip. Consulte Definición de dependencias de Python conpip. - Utiliza un
pyproject.tomlarchivo para los paquetes de Python instalados conuv. Consulte Definición de dependencias de Python conuv. - Usa un archivo
package.jsonpara los paquetes de Node.js instalados connpmopnpm. Consulte Definición de dependencias de Node.js.
Definición de dependencias de Python con pip
Las aplicaciones que usan pip incluyen un conjunto de bibliotecas de Python preinstaladas. Para definir bibliotecas adicionales de Python, use un requirements.txt archivo . Si alguno de los paquetes enumerados coincide con los instalados previamente, las versiones del archivo invalidan los valores predeterminados.
Las aplicaciones escaladas horizontalmente (Beta) convertidas desde aplicaciones estándar pueden optar por no tener bibliotecas preinstaladas y ejecutarse en una imagen de sistema operativo base limpia en su lugar. Consulte Cómo excluir las bibliotecas de Python preinstaladas para las aplicaciones de Databricks.
Por ejemplo:
# 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
Bibliotecas de Python preinstaladas
Las aplicaciones basadas en pip incluyen las siguientes bibliotecas de Python preinstaladas. No necesita añadirlos a requirements.txt a menos que necesite una versión diferente.
| Biblioteca | Versión |
|---|---|
| databricks-sql-connector | 3.4.0 |
| databricks-sdk (kit de desarrollo de software de Databricks) | 0.33.0 |
| mlflow-skinny | 2.16.2 |
| gradio | 4.44.0 |
| streamlit | 1.38.0 |
| brillante | 1.1.0 |
| guión | 2.18.1 |
| flask | 3.0.3 |
| fastapi | 0.115.0 |
| uvicorn[standard] | 0.30.6 |
| gunicorn | 23.0.0 |
| plataforma 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 |
Definición de dependencias de Python con uv
Si la aplicación usa uv para la administración de dependencias, defina las dependencias de Python en un pyproject.toml archivo en lugar de requirements.txt. Las aplicaciones basadas en uv no incluyen bibliotecas preinstaladas, por lo que debe declarar todas las dependencias en su pyproject.toml. También puede especificar cualquier versión de Python mediante el campo requires-python, a diferencia de las aplicaciones basadas en pip, que usan Python 3.11.
Lo mismo se aplica a las aplicaciones escaladas horizontalmente que han optado por no tener bibliotecas preinstaladas. Consulte Cómo excluir las bibliotecas de Python preinstaladas para las aplicaciones de Databricks.
Durante la implementación, Databricks Apps selecciona una estrategia de instalación en función de los archivos que están presentes:
- Si
requirements.txtexiste, la aplicación usapippara instalar dependencias, independientemente de sipyproject.tomltambién está presente.requirements.txtsiempre tiene prioridad. - Si
requirements.txtno existe y ambospyproject.tomlyuv.lockexisten, la aplicación usauvpara instalar dependencias desde el archivo de bloqueo.
El uv instalador crea y administra su propio entorno virtual, por lo que no es necesario crear un .venv directorio.
En el ejemplo siguiente se muestra un mínimo pyproject.toml para una aplicación de Databricks:
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
Para usar uv, debe incluir un uv.lock archivo junto con pyproject.toml. Genéralo ejecutándolo localmente e inclúyelo en el directorio de tu aplicación.
Definición de dependencias de Node.js
Para definir bibliotecas Node.js, incluye un archivo package.json en la raíz de tu aplicación. Azure Databricks admite tanto npm como pnpm, y selecciona el administrador de paquetes en función del archivo de bloqueo que incluya:
- Si
pnpm-lock.yamlestá presente, la aplicación usapnpm. Consulte Uso depnpm. - De lo contrario, la aplicación usa
npm. - Si ambos
pnpm-lock.yamlypackage-lock.jsonestán presentes,pnpmtiene prioridad.
Por ejemplo, un package.json archivo para una aplicación react con Vite podría tener este aspecto:
{
"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"
}
}
Nota:
Enumere todos los paquetes necesarios para el paso de compilación en dependencies, no devDependencies. Si establece NODE_ENV=production en las variables de entorno, el proceso de implementación omite la instalación de devDependencies.
Usa pnpm
Para compilar con pnpm, incluya un pnpm-lock.yaml archivo junto con package.json. Genéralo ejecutándolo localmente e inclúyelo en el directorio de tu aplicación. Azure Databricks proporciona pnpm a través de Corepack.
Tenga en cuenta los siguientes requisitos para las aplicaciones pnpm:
- Las dependencias se instalan con
pnpm install --frozen-lockfile, por lo quepnpm-lock.yamldeben estar sincronizados conpackage.json. Si se desincronizan, la compilación falla en lugar de actualizar el archivo de bloqueo. Vuelva a generar el archivo de bloqueo conpnpm installdespués de cambiar las dependencias. - Debe especificar el comando start en
app.yaml. A diferencia de las aplicacionesnpm, las aplicacionespnpmno recurren a una secuencia de comandosstartpredeterminada. Vea Configurar la ejecución de la aplicación de Databricks conapp.yaml.
Para los proyectos de espacio de trabajo pnpm (donde está presente un archivo pnpm-workspace.yaml), algunos comandos app.yaml se ejecutan pnpm recursivamente. Por ejemplo, un paso de compilación o inicio podría ejecutar pnpm -r run build. Estos comandos deben llamar a corepack pnpm en lugar de pnpm para que los comandos anidados se resuelvan correctamente.
Evitar conflictos de versiones
Siga estas instrucciones para evitar conflictos de versiones:
- Para aplicaciones basadas en
pip, sobrescribir paquetes preinstalados puede causar problemas de compatibilidad si la versión especificada difiere significativamente de la versión preinstalada. - Pruebe siempre la aplicación para comprobar que los cambios en la versión del paquete no presentan errores.
- Anclar versiones explícitas en
requirements.txtayuda a mantener un comportamiento coherente de la aplicación en todas las implementaciones. - Al usar
uv, incluya unuv.lockarchivo para instalaciones totalmente reproducibles en todas las implementaciones.
Instalación y administración de dependencias
Azure Databricks instala bibliotecas definidas en requirements.txt, pyproject.tomly package.json directamente en el contenedor que se ejecuta en el proceso dedicado. Usted es responsable de gestionar y aplicar parches a estas dependencias.
Puede especificar bibliotecas de varios orígenes en los archivos de dependencia:
- Bibliotecas descargadas de repositorios públicos como PyPI y npm
- Repositorios privados que se autentican mediante credenciales almacenadas en secretos de Azure Databricks
- Bibliotecas almacenadas en el
/Volumes/directorio (por ejemplo,/Volumes/<catalog>/<schema>/<volume>/<path>)
Instalación desde repositorios privados
Para instalar paquetes desde un repositorio privado, configure variables de entorno para la autenticación. Por ejemplo, establezca PIP_INDEX_URL para que apunte al repositorio privado:
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
La configuración de red del área de trabajo debe permitir el acceso al repositorio privado. Consulte Configuración de redes para Aplicaciones de Databricks.
Instalación de archivos wheel desde los volúmenes del Catálogo de Unity
Para instalar paquetes de Python desde archivos Wheel almacenados en volúmenes del Catálogo de Unity:
- Agregue el volumen del catálogo de Unity como un recurso a la aplicación. Consulte Volumen del catálogo de Unity.
- Haga referencia directamente a la ruta completa del archivo wheel en
requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl
Nota:
Las referencias a variables de entorno no se admiten en requirements.txt. Debe codificar de forma fija la ruta de acceso completa del archivo wheel.
Para mejorar la seguridad al acceder a repositorios de paquetes externos, use controles de salida sin servidor para restringir el acceso a repositorios públicos y configurar redes privadas. Consulte Configuración de redes para Aplicaciones de Databricks.