Installieren einer benutzerdefinierten Python-Laufzeit für SQL Server
Gilt für: SQL Server 2019 (15.x)
Hier erfahren Sie, wie Sie eine benutzerdefinierte Python-Runtime zum Ausführen von externen Python-Skripts mit SQL Server auf folgenden Distributionen:
- Windows
- Ubuntu Linux
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES)
Die benutzerdefinierte Runtime kann Machine Learning-Skripts ausführen und verwendet die SQL Server-Spracherweiterungen.
Verwenden Sie Ihre eigene Version der Python-Runtime anstelle der Standardversion der Runtime mit SQL Server zu verwenden, die mit SQL Server Machine Learning Services installiert wird.
Ab SQL Server 2022 (16.x) werden Runtimes für R, Python und Java nicht mehr im Rahmen des SQL-Setups installiert. Installieren Sie stattdessen Ihre gewünschten benutzerdefinierten Python-Runtimes und -Pakete. Weitere Informationen finden Sie unter Installieren von SQL Server 2022 Machine Learning Services (Python und R) unter Windows oder Installieren von SQL Server Machine Learning Services (Python und R) unter Linux.
Voraussetzungen
Vor der Installation einer benutzerdefinierten Python-Laufzeit müssen Sie Folgendes installieren:
- Wenn Sie eine vorhandene SQL Server-Instanz verwenden, installieren Sie das kumulative Update 3 oder höher für SQL Server 2019.
Installieren von Spracherweiterungen
Hinweis
Wenn Sie Machine Learning Services unter SQL Server 2019 installiert haben, sind die Spracherweiterungen bereits installiert, und Sie können diesen Schritt überspringen.
Führen Sie die folgenden Schritte aus, um SQL Server-Spracherweiterungen zu installieren, die für die benutzerdefinierte Python-Runtime verwendet werden.
Starten Sie den Setup-Assistenten für SQL Server 2019.
Klicken Sie auf der Registerkarte Installation auf Neue eigenständige SQL Server-Installation oder Hinzufügen von Funktionen zu einer vorhandenen Installation.
Wählen Sie diese Optionen auf der Seite Funktionsauswahl aus:
Datenbank-Engine-Dienste
Sie müssen eine Instanz der Datenbank-Engine installieren, um Spracherweiterungen mit SQL Server verwenden zu können. Sie können entweder eine neue oder eine vorhandene Instanz verwenden.
Machine Learning-Dienste und -Spracherweiterungen
Wählen Sie Machine Learning-Dienste und -Spracherweiterungen aus. Wählen Sie nicht Python aus, da Sie die benutzerdefinierte Python-Runtime später installieren werden.
Stellen Sie auf der Seite Installationsbereit sicher, dass die folgenden Auswahlmöglichkeiten aktiviert sind, und klicken Sie auf Installieren.
- -Datenbank-Engine-Dienste
- Machine Learning-Dienste und -Spracherweiterungen
Starten Sie nach Abschluss des Setups den Computer neu, wenn Sie dazu aufgefordert werden.
Wichtig
Wenn Sie eine neue Instanz von SQL Server 2019 mit Spracherweiterungen installieren, installieren Sie das kumulative Update (CU) 3 oder höher, bevor Sie mit dem nächsten Schritt fortfahren.
Installieren von Python
Die für die benutzerdefinierte Python-Runtime verwendete Python-Spracherweiterung unterstützt derzeit nur Python 3.7. Wenn Sie eine andere Version von Python verwenden möchten, folgen Sie den Anweisungen im GitHub-Repository für die Python-Spracherweiterung, um die Erweiterung zu ändern und neu zu erstellen.
Laden Sie Python 3.7 für Windows herunter, und führen Sie das Setup auf dem Server aus.
Wählen Sie Add Python 3.7 to PATH (Python 3.7 zu PATH hinzufügen) und dann Installation anpassen aus.
Behalten Sie unter Optionale Features die Standardeinstellungen bei, und wählen Sie Weiter aus.
Wählen Sie Für alle Benutzer installieren aus, und merken Sie sich den Installationsort.
Wählen Sie Installieren aus.
Installieren von Pandas
Installieren Sie das Pandas-Paket für Python über eine Eingabeaufforderung mit erhöhten Rechten (Als Administrator ausführen):
python.exe -m pip install pandas
Gewähren des Zugriffs auf den Python-Ordner
Führen Sie die folgenden icacls-Befehle in einer neuen Eingabeaufforderung mit erhöhten Rechten aus, um Zugriff auf den SQL Server-Launchpad-Dienst und SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES) LESE- und AUSFÜHRUNGSZUGRIFF auf dem Python-Installationsspeicherort zu gewähren.
In den folgenden Beispielen wird der Python-Installationsspeicherort als C:\Program Files\Python37
verwendet. Wenn sich Ihr Speicherort unterscheidet, dann ändern Sie ihn im Befehl.
Erteilen Sie Berechtigungen für Benutzername des SQL Server-Launchpad Diensts.
icacls "C:\Program Files\Python37" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
Bei einer benannter Instanz ist der Befehl
icacls "C:\Program Files\Python37" /grant "NT Service\MSSQLLAUNCHPAD$SQL01":(OI)(CI)RX /T
für eine Instanz namens SQL01.Erteilen Sie die Berechtigung für SID S-1-15-2-1.
icacls "C:\Program Files\Python37" /grant *S-1-15-2-1:(OI)(CI)RX /T
Der vorangehende Befehl erteilt Berechtigungen für die Computer-SID S-1-15-2-1, was ALLEN ANWENDUNGSPAKETEN auf einer englischen Version von Windows entspricht. Alternativ können Sie
icacls "C:\Program Files\Python37" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T
in einer englischen Version von Windows verwenden.
Neustart von SQL Server-Launchpad
Führen Sie die folgenden Schritte aus, um den SQL Server-Launchpad-Dienst neu zu starten.
Öffnen Sie den SQL Server-Konfigurations-Manager.
Klicken Sie unter SQL Server-Dienste mit der rechten Maustaste auf SQL Server-Launchpad (MSSQLSERVER), und wählen Sie Neu starten aus. Wenn Sie eine benannte Instanz verwenden, wird der Instanzname anstelle von (MSSQLSERVER) angezeigt.
Registrieren der Spracherweiterung
Führen Sie die folgenden Schritte aus, um die Python-Spracherweiterung herunterzuladen und zu registrieren, die für die benutzerdefinierte Python-Runtime verwendet wird.
Laden Sie die Datei python-lang-extension-windows-release.zip aus dem GitHub-Repository für die SQL Server-Spracherweiterungen herunter.
Alternativ können Sie auch die Debugversion (python-lang-extension-windows-debug.zip) in einer Entwicklungs- oder Testumgebung verwenden. Die Debugversion bietet ausführliche Protokollierungsinformationen, um eventuelle Fehler zu untersuchen, und wird nicht für Produktionsumgebungen empfohlen.
Verwenden Sie Azure Data Studio, um eine Verbindung mit Ihrer SQL Server-Instanz herzustellen, und führen Sie den folgenden T-SQL-Befehl aus, um die Python-Spracherweiterung mit CREATE EXTERNAL LANGUAGE zu registrieren.
Ändern Sie den Pfad in dieser Anweisung, um den Speicherort der heruntergeladenen ZIP-Spracherweiterungsdatei (python-lang-extension-windows) und den Speicherort Ihrer Python-Installation (
C:\\Program Files\\Python37
) anzugeben.CREATE EXTERNAL LANGUAGE [myPython] FROM (CONTENT = N'C:\path\to\python-lang-extension-windows-release.zip', FILE_NAME = 'pythonextension.dll', ENVIRONMENT_VARIABLES = N'{"PYTHONHOME": "C:\\Program Files\\Python37"}'); GO
Führen Sie die Anweisung für jede Datenbank aus, in der Sie die Python-Spracherweiterung verwenden möchten.
Hinweis
Python ist ein reserviertes Wort und kann nicht als Name für einen neuen externen Sprachnamen verwendet werden. Verwenden Sie stattdessen einen anderen Namen. Die obige Anweisung verwendet z. B. myPython.
Voraussetzungen
Vor der Installation einer benutzerdefinierten Python-Laufzeit müssen Sie Folgendes installieren:
Installieren Sie SQL Server 2019 für Linux. Sie könne SQL Server unter Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) und Ubuntu installieren. Weitere Informationen finden Sie im Leitfaden für die Installation von SQL Server unter Linux.
Führen Sie ein Upgrade auf das kumulative Update (CU) 3 oder höher für SQL Server 2019 durch. Führen Sie die folgenden Schritte aus:
Konfigurieren Sie die Repositorys für kumulative Updates. Weitere Informationen finden Sie unter Konfigurieren von Repositorys zum Installieren und Upgraden von SQL Server für Linux.
Aktualisieren Sie das Paket mssql-server auf das neueste kumulative Update. Weitere Informationen finden Sie im Abschnitt „Update oder Upgrade von SQL Server“ im Leitfaden für die Installation von SQL Server unter Linux.
Installieren von Spracherweiterungen
Hinweis
Wenn Sie Machine Learning Services unter SQL Server 2019 installiert haben, ist das Paket mssql-server-extensibility für Spracherweiterungen bereits installiert, und Sie können diesen Schritt überspringen.
Führen Sie die folgenden Befehle aus, um SQL Server-Spracherweiterungen unter Ubuntu Linux zu installieren, die für die benutzerdefinierte Python-Runtime verwendet werden.
Führen Sie diesen Befehl wenn möglich aus, um die Pakete auf dem System vor der Installation zu aktualisieren.
# Install as root or sudo sudo apt-get update
Ubuntu verfügt möglicherweise nicht über die Option „https apt transport“. Führen Sie diesen Befehl aus, um sie zu installieren.
# Install as root or sudo apt-get install apt-transport-https
Installieren Sie mssql-server-extensibility mit diesem Befehl.
# Install as root or sudo sudo apt-get install mssql-server-extensibility
Installieren von Python 3.7 and Pandas
Die für die benutzerdefinierte Python-Runtime verwendete Python-Spracherweiterung unterstützt derzeit nur Python 3.7. Wenn Sie eine andere Version von Python verwenden möchten, folgen Sie den Anweisungen im GitHub-Repository für die Python-Spracherweiterung, um die Erweiterung zu ändern und neu zu erstellen.
Führen Sie die folgenden Befehle aus, um Python 3.7 zu installieren.
# Install python3.7 and the corresponding library: sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install python3.7 python3-pip libpython3.7
Führen Sie den folgenden Befehl aus, um das Pandas-Paket zu installieren
# Install pandas to /usr/lib: sudo python3.7 -m pip install pandas -t /usr/lib/python3.7/dist-packages
Benutzerdefinierte Installation von Python
Hinweis
Wenn Sie Python 3.7 am Standardspeicherort von /usr/lib/python3.7
installiert haben, können Sie diesen Abschnitt überspringen und mit dem Abschnitt Registrieren der Spracherweiterung fortfahren.
Wenn Sie Ihre eigene Version von Python 3.7 erstellt haben, verwenden Sie die folgenden Befehle, um SQL Server über Ihre benutzerdefinierte Installation zu informieren.
Hinzufügen einer Umgebungsvariablen
Bearbeiten Sie zunächst den Dienst mssql-launchpadd, um der Datei /etc/systemd/system/mssql-launchpadd.service.d/override.conf
die PYTHONHOME-Umgebungsvariable hinzuzufügen.
Öffnen Sie die Datei mit systemctl.
sudo systemctl edit mssql-launchpadd
Fügen Sie den folgenden Text in die Datei
/etc/systemd/system/mssql-launchpadd.service.d/override.conf
ein, die geöffnet wird. Legen Sie den Wert von PYTHONHOME auf den benutzerdefinierten Python-Installationspfad fest.[Service] Environment="PYTHONHOME=<path to the python3.7 lib>"
Speichern Sie die Datei, und schließen Sie den Editor.
Stellen Sie als nächstes sicher, dass libpython3.7m.so.1.0
geladen werden kann.
Erstellen Sie eine benutzerdefinierte Datei „python.conf“ in
/etc/ld.so.conf.d
.sudo vi /etc/ld.so.conf.d/custom-python.conf
Fügen Sie in der Datei, die geöffnet wird, den Pfad zu libpython3.7m.so.1.0 aus der benutzerdefinierten Python-Installation hinzu.
<path to the python3.7 lib>
Speichern Sie die neue Datei, und schließen Sie den Editor.
Führen Sie
ldconfig
aus, und vergewissern Sie sich, dasslibpython3.7m.so.1.0
geladen werden kann, indem Sie den folgenden Befehl ausführen und überprüfen, ob die abhängigen Bibliotheken gefunden werden.sudo ldconfig ldd <path to the python3.7 lib>/libpython3.7m.so.1.0
Gewähren des Zugriffs auf den Python-Ordner
Legen Sie die datadirectories
-Option im Erweiterbarkeitsabschnitt der Datei /var/opt/mssql/mssql.conf
auf die benutzerdefinierte Python-Installation fest.
sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to python3.7>
Neustart von mssql-launchpadd
Führen Sie den folgenden Befehl aus, um mssql-launchpadd neu zu starten:
sudo systemctl restart mssql-launchpadd
Registrieren der Spracherweiterung
Führen Sie die folgenden Schritte aus, um die Python-Spracherweiterung herunterzuladen und zu registrieren, die für die benutzerdefinierte Python-Runtime verwendet wird.
Laden Sie die Datei python-lang-extension-linux-release.zip aus dem GitHub-Repository für die SQL Server-Spracherweiterungen herunter.
Alternativ können Sie auch die Debugversion (python-lang-extension-linux-debug.zip) in einer Entwicklungs- oder Testumgebung verwenden. Die Debugversion bietet ausführliche Protokollierungsinformationen, um eventuelle Fehler zu untersuchen, und wird nicht für Produktionsumgebungen empfohlen.
Verwenden Sie Azure Data Studio, um eine Verbindung mit Ihrer SQL Server-Instanz herzustellen, und führen Sie den folgenden T-SQL-Befehl aus, um die Python-Spracherweiterung mit CREATE EXTERNAL LANGUAGE zu registrieren.
Ändern Sie den Pfad in dieser Anweisung, um den Speicherort der heruntergeladenen ZIP-Spracherweiterungsdatei (python-lang-extension-linux-release.zi) anzugeben.
CREATE EXTERNAL LANGUAGE [myPython] FROM (CONTENT = N'/path/to/python-lang-extension-linux-release.zip', FILE_NAME = 'libPythonExtension.so.1.1'); GO
Führen Sie die Anweisung für jede Datenbank aus, in der Sie die Python-Spracherweiterung verwenden möchten.
Hinweis
Python ist ein reserviertes Wort und kann nicht als Name für einen neuen externen Sprachnamen verwendet werden. Verwenden Sie stattdessen einen anderen Namen. Die obige Anweisung verwendet z. B. myPython.
Voraussetzungen
Vor der Installation einer benutzerdefinierten Python-Laufzeit müssen Sie Folgendes installieren:
Installieren Sie SQL Server 2019 für Linux. Sie könne SQL Server unter Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) und Ubuntu installieren. Weitere Informationen finden Sie im Leitfaden für die Installation von SQL Server unter Linux.
Führen Sie ein Upgrade auf das kumulative Update (CU) 3 oder höher für SQL Server 2019 durch. Führen Sie die folgenden Schritte aus:
Konfigurieren Sie die Repositorys für kumulative Updates. Weitere Informationen finden Sie unter Konfigurieren von Repositorys zum Installieren und Upgraden von SQL Server für Linux.
Aktualisieren Sie das Paket mssql-server auf das neueste kumulative Update. Weitere Informationen finden Sie im Abschnitt „Update oder Upgrade von SQL Server“ im Leitfaden für die Installation von SQL Server unter Linux.
Installieren von Spracherweiterungen
Hinweis
Wenn Sie Machine Learning Services unter SQL Server 2019 installiert haben, ist das Paket mssql-server-extensibility für Spracherweiterungen bereits installiert, und Sie können diesen Schritt überspringen.
Führen Sie die folgenden Befehle aus, um SQL Server-Spracherweiterungen unter Red Hat Enterprise Linux (RHEL) zu installieren, die für die benutzerdefinierte Python-Runtime verwendet werden.
# Install as root or sudo
sudo yum install mssql-server-extensibility
Installieren von Python 3.7 and Pandas
Die für die benutzerdefinierte Python-Runtime verwendete Python-Spracherweiterung unterstützt derzeit nur Python 3.7. Wenn Sie eine andere Version von Python verwenden möchten, folgen Sie den Anweisungen im GitHub-Repository für die Python-Spracherweiterung, um die Erweiterung zu ändern und neu zu erstellen.
Führen Sie die folgenden Befehle aus, um Python 3.7 zu installieren.
# Install python3.7 and the corresponding library: yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel cd /usr/src wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz tar xzf Python-3.7.9.tgz cd Python-3.7.9 ./configure --enable-optimizations --prefix=/usr make altinstall
Führen Sie den folgenden Befehl aus, um das Pandas-Paket zu installieren
# Install pandas to /usr/lib: sudo python3.7 -m pip install pandas -t /usr/lib/python3.7/dist-packages
Benutzerdefinierte Installation von Python
Hinweis
Wenn Sie Python 3.7 am Standardspeicherort von /usr/lib/python3.7
installiert haben, können Sie diesen Abschnitt überspringen und mit dem Abschnitt Registrieren der Spracherweiterung fortfahren.
Wenn Sie Ihre eigene Version von Python 3.7 erstellt haben, verwenden Sie die folgenden Befehle, um SQL Server über Ihre benutzerdefinierte Installation zu informieren.
Hinzufügen einer Umgebungsvariablen
Bearbeiten Sie zunächst den Dienst mssql-launchpadd, um der Datei /etc/systemd/system/mssql-launchpadd.service.d/override.conf
die PYTHONHOME-Umgebungsvariable hinzuzufügen.
Öffnen Sie die Datei mit systemctl.
sudo systemctl edit mssql-launchpadd
Fügen Sie den folgenden Text in die Datei
/etc/systemd/system/mssql-launchpadd.service.d/override.conf
ein, die geöffnet wird. Legen Sie den Wert von PYTHONHOME auf den benutzerdefinierten Python-Installationspfad fest.[Service] Environment="PYTHONHOME=<path to the python3.7 lib>"
Speichern Sie die Datei, und schließen Sie den Editor.
Stellen Sie als nächstes sicher, dass libpython3.7m.so.1.0
geladen werden kann.
Erstellen Sie eine benutzerdefinierte Datei „python.conf“ in
/etc/ld.so.conf.d
.sudo vi /etc/ld.so.conf.d/custom-python.conf
Fügen Sie in der Datei, die geöffnet wird, den Pfad zu libpython3.7m.so.1.0 aus der benutzerdefinierten Python-Installation hinzu.
<path to the python3.7 lib>
Speichern Sie die neue Datei, und schließen Sie den Editor.
Führen Sie
ldconfig
aus, und vergewissern Sie sich, dasslibpython3.7m.so.1.0
geladen werden kann, indem Sie den folgenden Befehl ausführen und überprüfen, ob die abhängigen Bibliotheken gefunden werden.sudo ldconfig ldd <path to the python3.7 lib>/libpython3.7m.so.1.0
Gewähren des Zugriffs auf den Python-Ordner
Legen Sie die datadirectories
-Option im Erweiterbarkeitsabschnitt der Datei /var/opt/mssql/mssql.conf
auf die benutzerdefinierte Python-Installation fest.
sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to python3.7>
Neustart von mssql-launchpadd
Führen Sie den folgenden Befehl aus, um mssql-launchpadd neu zu starten:
sudo systemctl restart mssql-launchpadd
Registrieren der Spracherweiterung
Führen Sie die folgenden Schritte aus, um die Python-Spracherweiterung herunterzuladen und zu registrieren, die für die benutzerdefinierte Python-Runtime verwendet wird.
Laden Sie die Datei python-lang-extension-linux-release.zip aus dem GitHub-Repository für die SQL Server-Spracherweiterungen herunter.
Alternativ können Sie auch die Debugversion (python-lang-extension-linux-debug.zip) in einer Entwicklungs- oder Testumgebung verwenden. Die Debugversion bietet ausführliche Protokollierungsinformationen, um eventuelle Fehler zu untersuchen, und wird nicht für Produktionsumgebungen empfohlen.
Verwenden Sie Azure Data Studio, um eine Verbindung mit Ihrer SQL Server-Instanz herzustellen, und führen Sie den folgenden T-SQL-Befehl aus, um die Python-Spracherweiterung mit CREATE EXTERNAL LANGUAGE zu registrieren.
Ändern Sie den Pfad in dieser Anweisung, um den Speicherort der heruntergeladenen ZIP-Spracherweiterungsdatei (python-lang-extension-linux-release.zi) anzugeben.
CREATE EXTERNAL LANGUAGE [myPython] FROM (CONTENT = N'/path/to/python-lang-extension-linux-release.zip', FILE_NAME = 'libPythonExtension.so.1.1'); GO
Führen Sie die Anweisung für jede Datenbank aus, in der Sie die Python-Spracherweiterung verwenden möchten.
Hinweis
Python ist ein reserviertes Wort und kann nicht als Name für einen neuen externen Sprachnamen verwendet werden. Verwenden Sie stattdessen einen anderen Namen. Die obige Anweisung verwendet z. B. myPython.
Voraussetzungen
Vor der Installation einer benutzerdefinierten Python-Laufzeit müssen Sie Folgendes installieren:
Installieren Sie SQL Server 2019 für Linux. Sie könne SQL Server unter Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) und Ubuntu installieren. Weitere Informationen finden Sie im Leitfaden für die Installation von SQL Server unter Linux.
Führen Sie ein Upgrade auf das kumulative Update (CU) 3 oder höher für SQL Server 2019 durch. Führen Sie die folgenden Schritte aus:
Konfigurieren Sie die Repositorys für kumulative Updates. Weitere Informationen finden Sie unter Konfigurieren von Repositorys zum Installieren und Upgraden von SQL Server für Linux.
Aktualisieren Sie das Paket mssql-server auf das neueste kumulative Update. Weitere Informationen finden Sie im Abschnitt „Update oder Upgrade von SQL Server“ im Leitfaden für die Installation von SQL Server unter Linux.
Installieren von Spracherweiterungen
Hinweis
Wenn Sie Machine Learning Services unter SQL Server 2019 installiert haben, ist das Paket mssql-server-extensibility für Spracherweiterungen bereits installiert, und Sie können diesen Schritt überspringen.
Führen Sie die folgenden Befehle aus, um SQL Server-Spracherweiterungen unter SUSE Linux Enterprise Server (SLES) zu installieren, die für die benutzerdefinierte Python-Runtime verwendet werden.
# Install as root or sudo
sudo zypper install mssql-server-extensibility
Installieren von Python 3.7 and Pandas
Die für die benutzerdefinierte Python-Runtime verwendete Python-Spracherweiterung unterstützt derzeit nur Python 3.7. Wenn Sie eine andere Version von Python verwenden möchten, folgen Sie den Anweisungen im GitHub-Repository für die Python-Spracherweiterung, um die Erweiterung zu ändern und neu zu erstellen.
Installieren Sie Python 3.7 auf dem Server.
Führen Sie den folgenden Befehl aus, um das Pandas-Paket zu installieren
# Install pandas to /usr/lib: sudo python3.7 -m pip install pandas -t /usr/lib/python3.7/dist-packages
Benutzerdefinierte Installation von Python
Hinweis
Wenn Sie Python 3.7 am Standardspeicherort von /usr/lib/python3.7
installiert haben, können Sie diesen Abschnitt überspringen und mit dem Abschnitt Registrieren der Spracherweiterung fortfahren.
Wenn Sie Ihre eigene Version von Python 3.7 erstellt haben, verwenden Sie die folgenden Befehle, um SQL Server über Ihre benutzerdefinierte Installation zu informieren.
Hinzufügen einer Umgebungsvariablen
Bearbeiten Sie zunächst den Dienst mssql-launchpadd, um der Datei /etc/systemd/system/mssql-launchpadd.service.d/override.conf
die PYTHONHOME-Umgebungsvariable hinzuzufügen.
Öffnen Sie die Datei mit systemctl.
sudo systemctl edit mssql-launchpadd
Fügen Sie den folgenden Text in die Datei
/etc/systemd/system/mssql-launchpadd.service.d/override.conf
ein, die geöffnet wird. Legen Sie den Wert von PYTHONHOME auf den benutzerdefinierten Python-Installationspfad fest.[Service] Environment="PYTHONHOME=<path to the python3.7 lib>"
Speichern Sie die Datei, und schließen Sie den Editor.
Stellen Sie als nächstes sicher, dass libpython3.7m.so.1.0
geladen werden kann.
Erstellen Sie eine benutzerdefinierte Datei „python.conf“ in
/etc/ld.so.conf.d
.sudo vi /etc/ld.so.conf.d/custom-python.conf
Fügen Sie in der Datei, die geöffnet wird, den Pfad zu libpython3.7m.so.1.0 aus der benutzerdefinierten Python-Installation hinzu.
<path to the python3.7 lib>
Speichern Sie die neue Datei, und schließen Sie den Editor.
Führen Sie
ldconfig
aus, und vergewissern Sie sich, dasslibpython3.7m.so.1.0
geladen werden kann, indem Sie den folgenden Befehl ausführen und überprüfen, ob die abhängigen Bibliotheken gefunden werden.sudo ldconfig ldd <path to the python3.7 lib>/libpython3.7m.so.1.0
Gewähren des Zugriffs auf den Python-Ordner
Legen Sie die datadirectories
-Option im Erweiterbarkeitsabschnitt der Datei /var/opt/mssql/mssql.conf
auf die benutzerdefinierte Python-Installation fest.
sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to python3.7>
Neustart von mssql-launchpadd
Führen Sie den folgenden Befehl aus, um mssql-launchpadd neu zu starten:
sudo systemctl restart mssql-launchpadd
Registrieren der Spracherweiterung
Führen Sie die folgenden Schritte aus, um die Python-Spracherweiterung herunterzuladen und zu registrieren, die für die benutzerdefinierte Python-Runtime verwendet wird.
Laden Sie die Datei python-lang-extension-linux-release.zip aus dem GitHub-Repository für die SQL Server-Spracherweiterungen herunter.
Alternativ können Sie auch die Debugversion (python-lang-extension-linux-debug.zip) in einer Entwicklungs- oder Testumgebung verwenden. Die Debugversion bietet ausführliche Protokollierungsinformationen, um eventuelle Fehler zu untersuchen, und wird nicht für Produktionsumgebungen empfohlen.
Verwenden Sie Azure Data Studio, um eine Verbindung mit Ihrer SQL Server-Instanz herzustellen, und führen Sie den folgenden T-SQL-Befehl aus, um die Python-Spracherweiterung mit CREATE EXTERNAL LANGUAGE zu registrieren.
Ändern Sie den Pfad in dieser Anweisung, um den Speicherort der heruntergeladenen ZIP-Spracherweiterungsdatei (python-lang-extension-linux-release.zi) anzugeben.
CREATE EXTERNAL LANGUAGE [myPython] FROM (CONTENT = N'/path/to/python-lang-extension-linux-release.zip', FILE_NAME = 'libPythonExtension.so.1.1'); GO
Führen Sie die Anweisung für jede Datenbank aus, in der Sie die Python-Spracherweiterung verwenden möchten.
Hinweis
Python ist ein reserviertes Wort und kann nicht als Name für einen neuen externen Sprachnamen verwendet werden. Verwenden Sie stattdessen einen anderen Namen. Die obige Anweisung verwendet z. B. myPython.
Aktivieren des externen Skripts
Sie können ein externes Python-Skript mit der gespeicherten Prozedur sp_execute_external script ausführen.
Zum Aktivieren externer Skripts verwenden Sie Azure Data Studio, um die folgende Anweisung auszuführen.
sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;
Überprüfen der Installation
Verwenden Sie das folgende SQL-Skript, um die Installation und Funktionalität der benutzerdefinierten Python-Runtime zu überprüfen. Im folgenden Beispielskript wird als Sprachname myPython
verwendet, da der Standardsprachname Python
für eine benutzerdefinierte Runtime nicht angegeben werden kann.
EXEC sp_execute_external_script
@language =N'myPython',
@script=N'
import sys
print(sys.path)
print(sys.version)
print(sys.executable)'