Obtenir des informations sur les packages PythonGet Python package information

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cet article vous explique comment obtenir des informations sur les packages Python ayant été installés, y compris les versions et les emplacements d’installation, sur SQL Server Machine Learning Services.This article describes how to get information about installed Python packages, including versions and installation locations, on SQL Server Machine Learning Services. Les exemples de scripts Python vous montrent comment répertorier des informations de package telles que le chemin d’installation et la version.Example Python scripts show you how to list package information such as installation path and version.

Emplacement par défaut de la bibliothèque PythonDefault Python library location

Lorsque vous installez Machine Learning avec SQL Server, une seule bibliothèque de packages est créée au niveau de l’instance pour chaque langue que vous ajoutez.When you install machine learning with SQL Server, a single package library is created at the instance level for each language that you install. Sur Windows, la bibliothèque d’instances est un dossier sécurisé enregistré avec SQL Server.On Windows, the instance library is a secured folder registered with SQL Server.

Tous les scripts ou les codes qui s’exécutent dans la base de données sur SQL Server doivent charger les fonctions à partir de la bibliothèque d’instances.All script or code that runs in-database on SQL Server must load functions from the instance library. SQL Server ne peut pas accéder aux packages installés dans d’autres bibliothèques.SQL Server can't access packages installed to other libraries. Cela s’applique également aux clients distants : tout code Python qui s’exécute dans le contexte de calcul du serveur peut uniquement utiliser des packages installés dans la bibliothèque d’instances.This applies to remote clients as well: any Python code running in the server compute context can only use packages installed in the instance library. Pour protéger les ressources du serveur, la bibliothèque d’instances par défaut ne peut être modifiée que par un administrateur de l’ordinateur.To protect server assets, the default instance library can be modified only by a computer administrator.

Le chemin d’accès par défaut aux éléments binaires pour Python est :The default path of the binaries for Python is:

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

Le chemin d’accès par défaut aux éléments binaires pour Python est :The default path of the binaries for Python is:

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

Cela nécessite d’utiliser l’instance SQL par défaut, MSSQLSERVER.This assumes the default SQL instance, MSSQLSERVER. Si SQL Server est installé en tant qu’instance nommée définie par l’utilisateur, le nom donné est utilisé à la place.If SQL Server is installed as a user-defined named instance, the given name is used instead.

Exécutez l’instruction suivante pour déterminer la bibliothèque par défaut de l’instance actuelle.Run the following statement to verify the default library for the current instance. Cet exemple renvoie la liste des dossiers inclus dans la variable sys.path Python.This example returns the list of folders included in the Python sys.path variable. La liste comprend le répertoire actuel et le chemin d’accès de la bibliothèque standard.The list includes the current directory and the standard library path.

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

Pour en savoir plus sur la variable sys.path et sur la façon dont elle est utilisée pour définir le chemin de recherche de l’interpréteur pour les modules, consultez la section Chemin de recherche du module.For more information about the variable sys.path and how it's used to set the interpreter's search path for modules, see The Module Search Path.

Packages Python par défautDefault Python packages

Les packages Python suivants sont installés avec SQL Server Machine Learning Services lorsque vous sélectionnez la fonctionnalité Python au moment de l’installation.The following Python packages are installed with SQL Server Machine Learning Services when you select the Python feature during setup.

.Packages Options de versionVersion DescriptionDescription
revoscalepyrevoscalepy 9.29.2 Utilisé pour les contextes de calcul distants, la diffusion en continu, l’exécution parallèle des fonctions rx pour l’importation et la transformation des données, la modélisation, la visualisation et l’analyse.Used for remote compute contexts, streaming, parallel execution of rx functions for data import and transformation, modeling, visualization, and analysis.
microsoftmlmicrosoftml 9.29.2 Ajoute des algorithmes d’apprentissage automatique dans Python.Adds machine learning algorithms in Python.

Mise à niveau des composantsComponent upgrades

Par défaut, les packages Python sont actualisés grâce aux Service Packs et aux mises à jour cumulatives.By default, Python packages are refreshed through service packs and cumulative updates. Les packages supplémentaires et les mises à niveau de version complètes des composants de base de Python ne sont possibles que par le biais de mises à niveau de produit ou par liaison de la prise en charge de Python avec Microsoft Machine Learning Server.Additional packages and full version upgrades of core Python components are possible only through product upgrades or by binding Python support to Microsoft Machine Learning Server.

Pour plus d’informations, consultez la section Mettre à niveau les composants R et Python dans SQL Server.For more information, see Upgrade R and Python components in SQL Server.

Packages Python open source par défautDefault open-source Python packages

Lorsque vous sélectionnez l’option de langage Python au cours de l’installation, la distribution Anaconda 4.2 (sur Python 3.5) est installée.When you select the Python language option during setup, Anaconda 4.2 distribution (over Python 3.5) is installed. En plus des bibliothèques de code Python, l’installation standard comprend des exemples de données, des tests unitaires et des exemples de scripts.In addition to Python code libraries, the standard installation includes sample data, unit tests, and sample scripts.

Important

Ne remplacez jamais manuellement la version de Python installée par le programme de SQL Server par des versions plus récentes obtenues sur le Web.You should never manually overwrite the version of Python installed by SQL Server Setup with newer versions on the web. Les packages Microsoft Python sont basés sur des versions spécifiques d’Anaconda.Microsoft Python packages are based on specific versions of Anaconda. Vous risquez de les déstabiliser si vous modifiez votre installation.Modifying your installation could destabilize it.

Répertorier tous les packages Python ayant été installésList all installed Python packages

L’exemple de script suivant affiche une liste des packages installés et leurs versions.The following example script displays a list of installed packages and their versions.

EXECUTE sp_execute_external_script 
  @language = N'Python', 
  @script = N'
import pkg_resources
import pandas as pd
installed_packages = pkg_resources.working_set
installed_packages_list = sorted(["%s==%s" % (i.key, i.version) for i in installed_packages])
df = pd.DataFrame(installed_packages_list)
OutputDataSet = df
  '
WITH RESULT SETS (( PackageVersion nvarchar (150) ))

Rechercher un seul package PythonFind a single Python package

Si vous avez installé un package Python et que vous souhaitez vous assurer qu’il est disponible pour une instance SQL Server donnée, vous pouvez exécuter une procédure stockée pour charger le package et renvoyer des messages.If you've installed a Python package and want to make sure that it's available to a particular SQL Server instance, you can execute a stored procedure to load the package and return messages.

Par exemple, le code suivant recherche le package scikit-learn.For example, the following code looks for the scikit-learn package. Si le package est trouvé, le code renvoie le message « le package scikit-learn est installé ».If the package is found, the code returns the message "Package scikit-learn is installed".

EXECUTE sp_execute_external_script
  @language = N'Python',
  @script = N'
import pkg_resources
pckg_name = "scikit-learn"
pckgs = pandas.DataFrame([(i.key) for i in pkg_resources.working_set], columns = ["key"])
installed_pckg = pckgs.query(''key == @pckg_name'')
print("Package", pckg_name, "is", "not" if installed_pckg.empty else "", "installed")
  '

L’exemple suivant renvoie les versions du package revoscalepy et de Python.The following example returns the versions of the revoscalepy package and of Python.

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

Étapes suivantesNext steps