Abrufen von Paketinformationen für PythonGet Python package information

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 erfahren Sie, wie Sie Informationen zu installierten Python-Paketen, einschließlich Versionsnummern und Installationsspeicherorten, in SQL Server Machine Learning Services erhalten.This article describes how to get information about installed Python packages, including versions and installation locations, on SQL Server Machine Learning Services. Dabei wird anhand von Python-Beispielskripts veranschaulicht, wie Sie Paketinformationen, z. B. Installationspfad und Version, auflisten können.Example Python scripts show you how to list package information such as installation path and version.

Standardspeicherort der Python-BibliothekDefault Python library location

Wenn Sie Machine Learning-Funktionen mit SQL Server installieren, wird eine einzelne Paketbibliothek auf Instanzebene für jede von Ihnen installierte Sprache erstellt.When you install machine learning with SQL Server, a single package library is created at the instance level for each language that you install. Unter Windows ist die Instanzbibliothek ein gesicherter Ordner, der bei SQL Server registriert ist.On Windows, the instance library is a secured folder registered with SQL Server.

Alle Skripts oder Codes, die datenbankintern in SQL Server ausgeführt werden, müssen Funktionen aus der Instanzbibliothek laden.All script or code that runs in-database on SQL Server must load functions from the instance library. SQL Server kann nicht auf Pakete zugreifen, die in anderen Bibliotheken installiert sind.SQL Server can't access packages installed to other libraries. Dies gilt auch für Remoteclients: Jeder Python-Code, der im Servercomputekontext ausgeführt wird, kann nur Pakete verwenden, die in der Instanzbibliothek installiert sind.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. Zum Schutz der Serverressourcen kann die Standardinstanzbibliothek nur von einem Computeradministrator geändert werden.To protect server assets, the default instance library can be modified only by a computer administrator.

Der Standardpfad der Binärdateien für Python lautet:The default path of the binaries for Python is:

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

Der Standardpfad der Binärdateien für Python lautet:The default path of the binaries for Python is:

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

Dabei wird von der standardmäßigen SQL-Instanz, MSSQLSERVER, ausgegangen.This assumes the default SQL instance, MSSQLSERVER. Wenn SQL Server als benutzerdefinierte benannte Instanz installiert wird, wird stattdessen der angegebene Name verwendet.If SQL Server is installed as a user-defined named instance, the given name is used instead.

Führen Sie die folgende Anweisung aus, um die Standardbibliothek für die aktuelle Instanz zu überprüfen.Run the following statement to verify the default library for the current instance. In diesem Beispiel wird die Liste der in der Python-Variablen sys.path enthaltenen Ordner zurückgegeben.This example returns the list of folders included in the Python sys.path variable. Die Liste enthält das aktuelle Verzeichnis und den Pfad der Standardbibliothek.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))'

Weitere Informationen zur Variablen sys.path, und wie sie zum Festlegen des Suchpfads für Module des Interpreters verwendet wird, finden Sie im Abschnitt zum Suchpfad für das Modul.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.

Python-StandardpaketeDefault Python packages

Wenn Sie bei der Installation die Python-Funktion auswählen, werden die folgenden Python-Pakete mit SQL Server Machine Learning Services installiert.The following Python packages are installed with SQL Server Machine Learning Services when you select the Python feature during setup.

PaketePackages VersionVersion BESCHREIBUNGDescription
revoscalepyrevoscalepy 9.29.2 Wird für Remotecomputekontexte, Streaming, parallele Ausführung von RX-Funktionen für Datenimport und Transformation, Modellierung, Visualisierung und Analyse verwendet.Used for remote compute contexts, streaming, parallel execution of rx functions for data import and transformation, modeling, visualization, and analysis.
microsoftmlmicrosoftml 9.29.2 Fügt Machine Learning-Algorithmen in Python hinzu.Adds machine learning algorithms in Python.

KomponentenupgradesComponent upgrades

Python-Pakete werden standardmäßig durch Service Packs und kumulative Updates aktualisiert.By default, Python packages are refreshed through service packs and cumulative updates. Zusätzliche Pakete und vollständige Versionsupgrades von Python-Kernkomponenten sind nur durch Produktupgrades oder durch Binden des Python-Supports an Microsoft Machine Learning Server möglich.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.

Weitere Informationen finden Sie unter Upgrade R and Python components in SQL Server (Upgrade von R- und Python-Komponenten in SQL Server).For more information, see Upgrade R and Python components in SQL Server.

Open-Source-Standardpakete für PythonDefault open-source Python packages

Wenn Sie während der Installation als Programmiersprache „Python“ auswählen, wird die Anaconda 4.2-Distribution (über Python 3.5) installiert.When you select the Python language option during setup, Anaconda 4.2 distribution (over Python 3.5) is installed. Zusätzlich zu den Python-Codebibliotheken umfasst die Standardinstallation Beispieldaten, Komponententests und Beispielskripts.In addition to Python code libraries, the standard installation includes sample data, unit tests, and sample scripts.

Wichtig

Überschreiben Sie die vom SQL Server-Setup installierte Version von Python niemals manuell mit neueren, online verfügbaren Versionen.You should never manually overwrite the version of Python installed by SQL Server Setup with newer versions on the web. Python-Pakete von Microsoft basieren auf bestimmten Versionen von Anaconda.Microsoft Python packages are based on specific versions of Anaconda. Die Änderung Ihrer Installation könnte diese instabil machen.Modifying your installation could destabilize it.

Auflisten aller installierten Python-PaketeList all installed Python packages

Das folgende Beispielskript zeigt eine Liste der installierten Pakete und deren Versionsnummern an.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) ))

Suchen eines einzelnen Python-PaketsFind a single Python package

Wenn Sie ein Python-Paket installiert haben und sicherstellen möchten, dass es für eine bestimmte SQL Server-Instanz verfügbar ist, können Sie eine gespeicherte Prozedur ausführen, um das Paket zu laden und Meldungen zurückzugeben.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.

Beispielsweise kann mit dem folgenden Code nach dem scikit-learn-Paket gesucht werden.For example, the following code looks for the scikit-learn package. Wenn das Paket gefunden wurde, gibt der Code die Meldung „Package scikit-learn is installed“ (Das Paket scikit-learn ist installiert) zurück.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")
  '

Im folgenden Beispiel werden die Versionsnummern des revoscalepy-Pakets und von Python zurückgegeben.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)
  '

Nächste SchritteNext steps