Installieren von Python-Paketen mit sqlmlutilsInstall Python packages with sqlmlutils

Gilt für: JaSQL Server NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

In diesem Artikel wird beschrieben, wie Sie Funktionen im sqlmlutils-Paket verwenden, um neue Python-Pakete in einer Instanz von SQL Server Machine Learning Services zu installieren.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. Die von Ihnen installierten Pakete können verwendet werden, um Python-Skripts innerhalb einer Datenbank mithilfe der T-SQL-Anweisung sp_execute_external_script auszuführen.The packages you install can be used in Python scripts running in-database using the sp_execute_external_script T-SQL statement.

Weitere Informationen zu dem Paketspeicherort und Installationspfaden finden Sie unter Abrufen von Paketinformationen für Python.For more information about package location and installation paths, see Get Python package information.

Hinweis

Der Python-Standardbefehl pip install wird für das Hinzufügen von Python-Paketen in SQL Server nicht empfohlen.The standard Python pip install command is not recommended for adding Python packages on SQL Server. Verwenden Sie stattdessen sqlmlutils, wie in diesem Artikel beschrieben.Instead, use sqlmlutils as described in this article.

VoraussetzungenPrerequisites

Weitere ÜberlegungenOther considerations

  • Die Pakete müssen Python 3.5-kompatibel sein und unter Windows ausgeführt werden.Packages must be Python 3.5-compliant and run on Windows.

  • Die Python-Paketbibliothek befindet sich im Ordner „Programme“ Ihrer SQL Server-Instanz, und für die Installation in diesem Ordner sind standardmäßig Administratorberechtigungen erforderlich.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. Weitere Informationen finden Sie unter Speicherort der Paketbibliothek.For more information, see Package library location.

  • Die Paketinstallation erfolgt pro Instanz.Package installation is per instance. Wenn Sie über mehrere Instanzen von Machine Learning Services verfügen, müssen Sie das Paket zu jeder hinzufügen.If you have multiple instances of Machine Learning Services, you must add the package to each one.

  • Bevor Sie ein Paket hinzufügen, sollten Sie überprüfen, ob das Paket für die SQL Server-Umgebung geeignet ist.Before adding a package, consider whether the package is a good fit for the SQL Server environment.

    • Es wird empfohlen, Python innerhalb der Datenbank für Tasks zu verwenden, die von einer engen Integration in die Datenbank-Engine profitieren, z. B. maschinelles Lernen, anstatt von Tasks, die einfache Datenbankabfragen ausführen.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.

    • Wenn Sie Pakete hinzufügen, deren Ausführung auf dem Server sehr rechenintensiv ist, wird die Leistung beeinträchtigt.If you add packages that put too much computational pressure on the server, performance will suffer.

    • In einer gesicherten SQL Server-Umgebung sollten Sie Folgendes vermeiden:On a hardened SQL Server environment, you might want to avoid the following:

      • Pakete, für die Netzwerkzugriff erforderlich istPackages that require network access
      • Pakete, für die erhöhte Zugriffsrechte für das Dateisystem erforderlich sindPackages that require elevated file system access
      • Pakete, die für die Webentwicklung oder andere Aufgaben verwendet werden und nicht von der Ausführung in SQL Server profitierenPackages used for web development or other tasks that don't benefit by running inside SQL Server

Installieren von sqlmlutils auf dem ClientcomputerInstall sqlmlutils on the client computer

Zur Verwendung von sqlmlutils müssen Sie dies zunächst auf dem Clientcomputer installieren, den Sie mit SQL Server verbinden.To use sqlmlutils, you first need to install it on the client computer that you use to connect to SQL Server.

  1. Laden Sie die neueste sqlmlutils-ZIP-Datei von https://github.com/Microsoft/sqlmlutils/tree/master/Python/dist auf den Clientcomputer herunter.Download the latest sqlmlutils zip file from https://github.com/Microsoft/sqlmlutils/tree/master/Python/dist to the client computer. Entpacken Sie die Datei jedoch nicht.Don't unzip the file.

  2. Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus, um das sqlmlutils-Paket zu installieren.Open a Command Prompt and run the following command to install the sqlmlutils package. Ersetzen Sie den vollständigen Pfad zur sqlmlutils-ZIP-Datei, die Sie heruntergeladen haben. In diesem Beispiel wird davon ausgegangen, dass dies die heruntergeladene Datei ist: 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
    

Hinzufügen eines Python-Pakets in SQL ServerAdd a Python package on SQL Server

Im folgenden Beispiel fügen Sie in SQL Server das Paket text-tools hinzu.In the following example, you'll add the text-tools package to SQL Server.

Hinzufügen des Pakets über eine InternetverbindungAdd the package online

Wenn der Clientcomputer, mit dem Sie sich mit SQL Server verbinden, über einen Internetzugang verfügt, können Sie mit sqlmlutils das Paket text-tools und alle Abhängigkeiten über das Internet suchen. Anschließend können Sie das Paket per Remotezugriff in einer SQL Server-Instanz installieren.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. Öffnen Sie auf dem Clientcomputer Python oder eine Python-Umgebung.On the client computer, open Python or a Python environment.

  2. Verwenden Sie die folgenden Befehle, um das Paket text-tools zu installieren.Use the following commands to install the text-tools package. Ersetzen Sie die eigenen Verbindungsdaten der SQL Server-Datenbank. (Wenn Sie keine Windows-Authentifizierung verwenden, fügen Sie die Parameter uid und pwd hinzu.)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")
    

Hinzufügen des Pakets ohne InternetverbindungAdd the package offline

Wenn der Clientcomputer, mit dem Sie sich mit SQL Server verbinden, über keine Internetverbindung verfügt, können Sie mit pip auf einem Computer mit Internetzugang das Paket und alle abhängigen Pakete in einen lokalen Ordner herunterladen.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. Anschließend kopieren Sie den Ordner auf den Clientcomputer, auf dem Sie das Paket offline installieren können.You then copy the folder to the client computer where you can install the package offline.

Auf einem Computer mit InternetzugriffOn a computer with Internet access

  1. Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus, um einen lokalen Ordner zu erstellen, der das Paket text-tools enthält.Open a Command Prompt and run the following command to create a local folder that contains the text-tools package. In diesem Beispiel wird der Ordner c:\temp\text-tools erstellt.This example creates the folder c:\temp\text-tools.

    pip download text-tools -d c:\temp\text-tools
    
  2. Kopieren Sie den text-tools-Ordner auf den Clientcomputer.Copy the text-tools folder to the client computer. Im folgenden Beispiel wird davon ausgegangen, dass Sie ihn nach c:\temp\packages\text-tools kopiert haben.The following example assumes you copied it to c:\temp\packages\text-tools.

Auf dem ClientcomputerOn the client computer

Verwenden Sie sqlmlutils, um jedes Paket (WHL-Datei) aus dem lokalen Ordner zu installieren, der von pip erstellt wurde.Use sqlmlutils to install each package (WHL file) you find in the local folder that pip created. Es spielt keine Rolle, in welcher Reihenfolge Sie die Pakete installieren.It doesn't matter in what order you install the packages.

In diesem Beispiel weist text-tools keine Abhängigkeiten auf, sodass es nur eine Datei aus dem Ordner text-tools gibt, die Sie installieren können.In this example, text-tools has no dependencies, so there is only one file from the text-tools folder for you to install. Im Gegensatz dazu hat ein Paket wie scikit-plot elf Abhängigkeiten, sodass Sie zwölf Dateien im Ordner finden würden (das Paket scikit-plot und die elf abhängigen Pakete), die Sie jeweils installieren würden.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.

Führen Sie folgendes Python-Skript aus.Run the following Python script. Ersetzen Sie den tatsächlichen Dateipfad und Paketnamen sowie die eigenen Verbindungsdaten der SQL Server-Datenbank. (Wenn Sie keine Windows-Authentifizierung verwenden, fügen Sie die Parameter uid und pwd hinzu.)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). Wiederholen Sie die sqlmlutils.SQLPackageManager-Anweisung für jede Paketdatei im Ordner.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")

Verwenden des Pakets in SQL ServerUse the package in SQL Server

Sie können das Paket jetzt in einem Python-Skript in SQL Server verwenden.You can now use the package in a Python script in SQL Server. Beispiel: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)
  '

Entfernen eines Pakets aus SQL ServerRemove the package from SQL Server

Wenn Sie das Paket text-tools entfernen möchten, verwenden Sie den folgenden Python-Befehl auf dem Clientcomputer und die Verbindungsvariablen, die Sie zuvor definiert haben.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")

Siehe auchSee also