Obtención de información de paquetes de Python

Se aplica a: SQL Server 2017 (14.x) y versiones posteriores Azure SQL Managed Instance

En este artículo se describe cómo obtener información sobre los paquetes de Python instalados, incluidas las versiones y las ubicaciones de instalación, en Machine Learning Services en SQL Server y en Clústeres de macrodatos. Los scripts de Python de ejemplo muestran cómo mostrar información de paquetes, como la ruta de instalación y la versión.

En este artículo se describe cómo obtener información sobre los paquetes de Python instalados, incluidas las versiones y las ubicaciones de instalación, en SQL Server Machine Learning Services. Los scripts de Python de ejemplo muestran cómo mostrar información de paquetes, como la ruta de instalación y la versión.

En este artículo se describe cómo obtener información sobre los paquetes de Python instalados, incluidas las versiones y las ubicaciones de instalación, en Machine Learning Services en Azure SQL Managed Instance. Los scripts de Python de ejemplo muestran cómo mostrar información de paquetes, como la ruta de instalación y la versión.

Ubicación predeterminada de las bibliotecas de Python

Al instalar Machine Learning con SQL Server, se crea una biblioteca de paquetes en el nivel de instancia para cada idioma que se instale. La biblioteca de instancias es una carpeta protegida que está registrada en SQL Server.

Todo el script o código que se ejecuta en la base de datos en SQL Server debe cargar funciones desde la biblioteca de instancias. SQL Server no puede obtener acceso a los paquetes instalados en otras bibliotecas. También se aplica a los clientes remotos: cualquier código de Python que se ejecute en el contexto del proceso del servidor solo puede usar paquetes instalados en la biblioteca de instancias. Para proteger los recursos del servidor, la biblioteca de instancias predeterminadas solo la puede modificar un administrador del equipo.

La ruta de acceso predeterminada de los archivos binarios de Python es:

C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES

Se da por sentado que la instancia predeterminada de SQL es MSSQLSERVER. Si se instala SQL Server como instancia con nombre definida por el usuario, se usará el nombre especificado.

La ruta de acceso predeterminada de los archivos binarios de Python es:

C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\PYTHON_SERVICES

Se da por sentado que la instancia predeterminada de SQL es MSSQLSERVER. Si se instala SQL Server como instancia con nombre definida por el usuario, se usará el nombre especificado.

Para habilitar los scripts externos, ejecute los comandos SQL siguientes:

sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH override;

Importante

En Azure SQL Managed Instance, la ejecución de los comandos sp_configure y RECONFIGURE desencadena un reinicio de SQL Server para que la configuración de RG surta efecto. Esto puede generar unos segundos de no disponibilidad.

Ejecute la instrucción SQL siguiente si quiere comprobar la biblioteca predeterminada de la instancia actual. En este ejemplo se devuelve la lista de carpetas incluidas en la variable sys.path de Python. La lista incluye el directorio actual y la ruta de acceso de la biblioteca estándar.

EXECUTE sp_execute_external_script
  @language =N'Python',
  @script=N'import sys; print("\n".join(sys.path))'

Para obtener más información sobre la variable sys.path y cómo se usa para establecer la ruta de acceso de búsqueda del intérprete para los módulos, consulte The Module Search Path (La ruta de acceso de búsqueda de un módulo).

Nota

No intente instalar paquetes de Python directamente en la biblioteca de paquetes SQL con pip o métodos similares. En su lugar, use sqlmlutils para instalar paquetes en una instancia de SQL. Para obtener más información, vea Instalación de paquetes de Python con sqlmlutils.

Paquetes predeterminados de Python en Microsoft

Los siguientes paquetes de Python en Microsoft se instalan con SQL Server Machine Learning Services al seleccionar la característica de Python durante la instalación.

Paquetes Versión Descripción
revoscalepy 9.4.7 Se usa para los contextos de procesos remotos, streaming, ejecución en paralelo de funciones rx para la importación y transformación de datos, modelado, visualización y análisis.
microsoftml 9.4.7 Agrega algoritmos de aprendizaje automático en Python.

Para obtener información sobre la versión de Python que se incluye, consulte Versiones de Python y R.

Actualizaciones de componentes

De forma predeterminada, los paquetes de Python se actualizan mediante Service Packs y actualizaciones acumulativas. Los paquetes adicionales y las actualizaciones de versión completa de los componentes principales de Python solo se pueden conseguir mediante actualizaciones de productos.

Paquetes de código abierto predeterminados de Python

Al seleccionar la opción de lenguaje de Python durante la instalación, se instala la distribución Anaconda 4.2 (en Python 3.5). Además de las bibliotecas de código de Python, la instalación estándar incluye datos de ejemplo, pruebas unitarias y scripts de ejemplo.

Importante

Nunca debe sobrescribir manualmente la versión de Python instalada por el programa de instalación de SQL Server por versiones más recientes en la web. Los paquetes de Microsoft Python se basan en versiones específicas de Anaconda. La modificación de la instalación podría desestabilizarla.

Visualización de todos los paquetes de Python instalados

En el siguiente script de ejemplo se muestra una lista de todos los paquetes de Python instalados en la instancia de SQL Server.

EXECUTE sp_execute_external_script
  @language = N'Python',
  @script = N'
import pkg_resources
import pandas
OutputDataSet = pandas.DataFrame(sorted([(i.key, i.version) for i in pkg_resources.working_set]))'
WITH result sets((Package NVARCHAR(128), Version NVARCHAR(128)));

Búsqueda de un único paquete de Python

Si ha instalado un paquete de Python y quiere asegurarse de que está disponible para una instancia de SQL Server determinada, puede ejecutar un procedimiento almacenado para buscar el paquete y devolver los mensajes.

Por ejemplo, el código siguiente busca el paquete scikit-learn. Si se encuentra el paquete, el código imprime la versión del paquete.

EXECUTE sp_execute_external_script
  @language = N'Python',
  @script = N'
import pkg_resources
pkg_name = "scikit-learn"
try:
    version = pkg_resources.get_distribution(pkg_name).version
    print("Package " + pkg_name + " is version " + version)
except:
    print("Package " + pkg_name + " not found")
'

Resultado:

STDOUT message(s) from external script: Package scikit-learn is version 0.20.2

Vista de la versión de Python

En el ejemplo de código siguiente se devuelve la versión de Python instalada en la instancia de SQL Server.

EXECUTE sp_execute_external_script
  @language = N'Python',
  @script = N'
import sys
print(sys.version)
'

Pasos siguientes