Installer des packages Python avec sqlmlutilsInstall Python packages with sqlmlutils

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 décrit comment utiliser les fonctions du package sqlmlutils pour installer de nouveaux packages Python sur une instance de SQL Server Machine Learning Services.This article describes how to use functions in the sqlmlutils package to install new Python packages to an instance of SQL Server Machine Learning Services. Les packages que vous installez peuvent être utilisés dans des scripts Python exécutés dans la base de données à l’aide de l’instruction T-SQL sp_execute_external_script.The packages you install can be used in Python scripts running in-database using the sp_execute_external_script T-SQL statement.

Pour plus d’informations sur l’emplacement des packages et les chemins d’installation, consultez Obtenir des informations sur les packages Python.For more information about package location and installation paths, see Get Python package information.

Notes

La commande Python standard pip install n’est pas recommandée pour l’ajout de packages Python sur SQL Server.The standard Python pip install command is not recommended for adding Python packages on SQL Server. Au lieu de cela, utilisez sqlmlutils comme décrit dans cet article.Instead, use sqlmlutils as described in this article.

Conditions préalables requisesPrerequisites

Autres considérationsOther considerations

  • Les packages doivent être conformes à Python 3.5 et s’exécuter sur Windows.Packages must be Python 3.5-compliant and run on Windows.

  • La bibliothèque de packages Python se trouve dans le dossier Program Files de votre instance SQL Server et, par défaut, l’installation dans ce dossier requiert des autorisations d’administrateur.The Python package library is located in the Program Files folder of your SQL Server instance and, by default, installing in this folder requires administrator permissions. Pour plus d’informations, consultez Emplacement de la bibliothèque de packages.For more information, see Package library location.

  • L’installation du package se fait par instance.Package installation is per instance. Si vous avez plusieurs instances de Machine Learning Services, vous devez ajouter le package à chacune d’entre elles.If you have multiple instances of Machine Learning Services, you must add the package to each one.

  • Avant d’ajouter un package, déterminez si le package est adapté à l’environnement SQL Server.Before adding a package, consider whether the package is a good fit for the SQL Server environment.

    • Nous vous recommandons d’utiliser Python dans la base de données pour les tâches qui bénéficient d’une intégration étroite avec le moteur de base de données, par exemple l’apprentissage automatique, plutôt que pour les tâches qui interrogent simplement la base de données.We recommend that you use Python in-database for tasks that benefit from tight integration with the database engine, such as machine learning, rather than tasks that simply query the database.

    • Si vous ajoutez des packages qui placent trop de pression de calcul sur le serveur, les performances en seront affectées.If you add packages that put too much computational pressure on the server, performance will suffer.

    • Dans un environnement SQL Server renforcé, vous souhaiterez peut-être éviter ce qui suit :On a hardened SQL Server environment, you might want to avoid the following:

      • Les packages qui nécessitent un accès réseauPackages that require network access
      • Les packages qui nécessitent un accès au système de fichiers élevéPackages that require elevated file system access
      • Les packages utilisés pour le développement Web ou d’autres tâches qui ne bénéficient pas de l’exécution dans SQL ServerPackages used for web development or other tasks that don't benefit by running inside SQL Server

Installer sqlmlutils sur l’ordinateur clientInstall sqlmlutils on the client computer

Pour utiliser sqlmlutils, vous devez d’abord l’installer sur l’ordinateur client que vous utilisez pour vous connecter à SQL Server.To use sqlmlutils, you first need to install it on the client computer that you use to connect to SQL Server.

  1. Téléchargez le dernier fichier zip sqlmlutils à partir de https://github.com/Microsoft/sqlmlutils/tree/master/Python/dist sur l’ordinateur client.Download the latest sqlmlutils zip file from https://github.com/Microsoft/sqlmlutils/tree/master/Python/dist to the client computer. Ne décompressez pas le fichier.Don't unzip the file.

  2. Ouvrez une invite de commandes et exécutez la commande suivante pour installer le package sqlmlutils.Open a Command Prompt and run the following command to install the sqlmlutils package. Remplacez le chemin d’accès complet par le fichier zip sqlmlutils que vous avez téléchargé (cet exemple suppose que le fichier téléchargé est c:\temp\sqlmlutils_0.6.0.zip).Substitute the full path to the sqlmlutils zip file you downloaded - this example assumes the downloaded file is c:\temp\sqlmlutils_0.6.0.zip.

    pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils_0.6.0.zip
    

Ajouter un package Python sur SQL ServerAdd a Python package on SQL Server

Dans l’exemple suivant, vous allez ajouter le package text-tools à SQL Server.In the following example, you'll add the text-tools package to SQL Server.

Ajouter le package en ligneAdd the package online

Si l’ordinateur client que vous utilisez pour vous connecter à SQL Server a accès à Internet, vous pouvez utiliser sqlmlutils pour rechercher le package text-tools et toutes les dépendances sur Internet, puis installer le package sur une instance SQL Server distante.If the client computer you use to connect to SQL Server has Internet access, you can use sqlmlutils to find the text-tools package and any dependencies over the Internet, and then install the package to a SQL Server instance remotely.

  1. Sur l’ordinateur client, ouvrez Python ou un environnement Python.On the client computer, open Python or a Python environment.

  2. Utilisez les commandes suivantes pour installer le package text-tools.Use the following commands to install the text-tools package. Remplacez vos propres informations de connexion de base de données SQL Server (si vous n’utilisez pas l’authentification Windows, ajoutez les paramètres uid et pwd).Substitute your own SQL Server database connection information (if you don't use Windows Authentication, add uid and pwd parameters).

    import sqlmlutils
    connection = sqlmlutils.ConnectionInfo(server="yourserver", database="yourdatabase")
    sqlmlutils.SQLPackageManager(connection).install("text-tools")
    

Ajouter le package hors connexionAdd the package offline

Si l’ordinateur client que vous utilisez pour vous connecter à SQL Server n’est pas connecté à Internet, vous pouvez utiliser pip sur un ordinateur disposant d’un accès à Internet pour télécharger le package et tous les packages dépendants dans un dossier local.If the client computer you use to connect to SQL Server doesn't have an Internet connection, you can use pip on a computer with Internet access to download the package and any dependent packages to a local folder. Vous copiez ensuite le dossier sur l’ordinateur client sur lequel vous pouvez installer le package hors connexion.You then copy the folder to the client computer where you can install the package offline.

Sur un ordinateur connecté à InternetOn a computer with Internet access

  1. Ouvrez une invite de commandes et exécutez la commande suivante pour créer un dossier local qui contient le package text-tools.Open a Command Prompt and run the following command to create a local folder that contains the text-tools package. Cet exemple crée le dossier c:\temp\text-tools.This example creates the folder c:\temp\text-tools.

    pip download text-tools -d c:\temp\text-tools
    
  2. Copiez le dossier text-tools sur l’ordinateur client.Copy the text-tools folder to the client computer. L’exemple suivant suppose que vous l’avez copié dans c:\temp\packages\text-tools.The following example assumes you copied it to c:\temp\packages\text-tools.

Sur l’ordinateur clientOn the client computer

Utilisez sqlmlutils pour installer chaque package (fichier WHL) que vous trouvez dans le dossier local créé par pip.Use sqlmlutils to install each package (WHL file) you find in the local folder that pip created. Peu importe l’ordre dans lequel vous installez les packages.It doesn't matter in what order you install the packages.

Dans cet exemple, text-tools n’a pas de dépendances. Il n’y a donc qu’un seul fichier du dossier text-tools que vous pouvez installer.In this example, text-tools has no dependencies, so there is only one file from the text-tools folder for you to install. En revanche, un package tel que scikit-plot a 11 dépendances. Par conséquent, vous trouverez 12 fichiers dans le dossier (le package scikit-plot et les 11 packages dépendants) et vous devez tous les installer.In contrast, a package such as scikit-plot has 11 dependencies, so you would find 12 files in the folder (the scikit-plot package and the 11 dependent packages), and you would install each of them.

Exécutez le script Python suivant.Run the following Python script. Remplacez le chemin d’accès au fichier, le nom du package et vos propres informations de connexion de base de données SQL Server (si vous n’utilisez pas l’authentification Windows, ajoutez les paramètres uid et pwd).Substitute the actual file path and name of the package, and your own SQL Server database connection information (if you don't use Windows Authentication, add uid and pwd parameters). Répétez l’instruction sqlmlutils.SQLPackageManager pour chaque fichier de package dans le dossier.Repeat the sqlmlutils.SQLPackageManager statement for each package file in the folder.

import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="yourserver", database="yourdatabase")
sqlmlutils.SQLPackageManager(connection).install("c:/temp/packages/text-tools/text_tools-1.0.0-py3-none-any.whl")

Utiliser le package dans SQL ServerUse the package in SQL Server

Vous pouvez maintenant utiliser le package dans un script Python dans SQL Server.You can now use the package in a Python script in SQL Server. Par exemple :For example:

EXECUTE sp_execute_external_script
  @language = N'Python',
  @script = N'
from text_tools.finders import find_best_string
corpus = "Lorem Ipsum text"
query = "Ipsum"
first_match = find_best_string(query, corpus)
print(first_match)
  '

Supprimer le package de SQL ServerRemove the package from SQL Server

Si vous souhaitez supprimer le package text-tools, utilisez la commande Python suivante sur l’ordinateur client, en utilisant la même variable de connexion que celle que vous avez définie précédemment.If you would like to remove the text-tools package, use the following Python command on the client computer, using the same connection variable you defined earlier.

sqlmlutils.SQLPackageManager(connection).uninstall("text-tools")

Voir aussiSee also