Dieses Dokument beschreibt den Prozess der Installation des Dienstprogramms 'pip' für die 64-Bit-Sprache INZA Python 2.7, die im IBM Netezza Analytics-Paket enthalten.
Vorbereitende Schritte
Stellen Sie sicher, dass die folgenden Produkte auf dem System installiert sind.
- IBM Netezza Analytics-Paket (11.0.x)
- OpenSSL Version 1.0.2x
Hinweis:Die Fehler von Python-Bibliotheken anderer Anbieter werden nicht behandelt.
Schwachstellen können nur von der Python behoben werden.
Dieses Verfahren bietet lediglich eine Möglichkeit, Bibliotheken von Drittanbietern zu installieren und wird von IBM nicht unterstützt.
Vorgehensweise
- Installation von 'pip':
Das Dienstprogramm 'pip' wird nicht standardmäßig mit Python 2.7 zur Verfügung gestellt. Sie muss sowohl auf der Host- als auch auf der SPU-Seite installiert werden. Verwenden Sie Befehle, um die Installation auf der Host- bzw. SPU-Seite durchzuführen.
- Host: /nz/export/ae/languages/python/2.7/host64/bin/python
-m ensurepip --default-pip
- SPU: ' /nz/export/ae/languages/python/2.7/spu64/bin/python -m ensurepip
--default-pip
Dadurch werden die Dienstprogramme pip und pip2 unter ' /nz/export/ae/languages/python/2.7/host64/bin/ bzw. ' /nz/export/ae/languages/python/2.7/spu64/bin/' installiert.
Hinweis: Das Dienstprogramm muss sowohl für den Host als auch für die SPU-Python-Sprache installiert werden. Das pip-Dienstprogramm benötigt eine SSL-Bibliothek für die ordnungsgemäße Funktion, die in Python 2.7 host64 und spu64 nicht enthalten ist.
- SSL-Problemumgehung:
Das Dienstprogramm 'pip' setzt 'ssl' für die Installation von Bibliotheken anderer Anbieter voraus. Die SSL-Bibliothek wird zurzeit nicht mit Python 2.7 (spu64 und host) zur Verfügung gestellt. Dieser Schritt bietet eine Umgehungslösung für den Zugriff auf die SSL-Bibliothek aus ausführbaren Python-Programmen.
- Kopieren Sie die beigefügte Bibliothek _ssl.so_host64 als _ssl.so an den Ort ' /nz/export/ae/languages/python/2.7/host64/lib/python-link/lib-dynload/ und _ssl.so_spu64 als _ssl.so an den Ort ' /nz/export/ae/languages/python/2.7/spu64/lib/python-link/lib-dynload/.
Anmerkung: Die zur Verfügung gestellten SSL-Bibliotheken sind vom System ' OpenSSL, abhängig, dessen Version mindestens ' 1.0.2 sein sollte. Ältere Versionen
werden nicht unterstützt.
- Überprüfen Sie, ob SSL kompatibel ist, indem Sie versuchen, die SSL-Bibliothek als "
import ssl aus den ausführbaren Dateien " /nz/export/ae/languages/python/2.7/host64/bin/python und " /nz/export/ae/languages/python/2.7/spu64/bin/python " zu importieren.
- /nz/export/ae/languages/python/2.7/host64/bin/python -c
import ssl
- /nz/export/ae/languages/python/2.7/spu64/bin/python -c
import ssl
Wenn hinsichtlich der Versionskompatibilität ein Fehler auftritt, müssen Sie OpenSSL-Pakete auf Version 1.0.2 aktualisieren.
- Installieren Sie die Bibliotheken anderer Anbieter:
Der Workaround in Schritt 2 stellt die notwendige SSL-Bibliothek für pip bereit. Verwenden Sie nun den folgenden Befehl, um eine beliebige Bibliothek eines Drittanbieters mithilfe von pip zu installieren:
- Host: /nz/export/ae/languages/python/2.7/host64/bin/pip install
<library_name>
- SPU: ' /nz/export/ae/languages/python/2.7/spu64/bin/pip install
<library_name>
- Beachten Sie, dass jede Bibliothek sowohl auf der Host- als auch auf der SPU-Seite installiert werden muss. Alle diese Bibliotheken werden heruntergeladen und unter ' /nz/export/ae/languages/python/2.7/host64/lib/python-link/site-packages und ' /nz/export/ae/languages/python/2.7/spu64/lib/python-link/site-packages für den Host bzw. die SPU installiert. Stellen Sie außerdem sicher, dass die SSL-Bibliothek in
_ssl.so umbenannt wird,
nachdem sie an der angegebenen Position kopiert wurde.
Python 3.6 wird mit der Standardversion von 'pip' geliefert, die Sie an der folgenden Position finden:
- Host: /nz/export/ae/languages/python/3.6/host64/bin/pip3
- SPU: ' /nz/export/ae/languages/python/3.6/spu64/bin/pip3
Beispiel
Im Folgenden finden Sie ein Beispiel für die 'pip'-Ausführung.
/nz/export/ae/languages/python/2.7/spu64/bin/pip install camelcase
Collecting camelcase
Using cached https://files.pythonhosted.org/packages/24/54/6bc20bf371c1c78193e2e4179097a7b779e56f420d0da41222a3b7d87890/camelcase-0.2.tar.gz
Installing collected packages: camelcase
Running setup.py install for camelcase ... done
Successfully installed camelcase-0.2
You are using pip version 9.0.1, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
/nz/export/ae/languages/python/3.6/spu64/bin/pip3 install camelcase
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting camelcase
Using cached https://files.pythonhosted.org/packages/24/54/6bc20bf371c1c78193e2e4179097a7b779e56f420d0da41222a3b7d87890/camelcase-0.2.tar.gz
Installing collected packages: camelcase
Running setup.py install for camelcase ... done
Successfully installed camelcase-0.2
You are using pip version 9.0.1, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Die nächsten Schritte
Finden Sie die folgende SSL-Bibliothek für Python 2.7:
Für die Version 3.x muss die folgende Datei hineinkopiert werden:
- Host: /nz/export/ae/languages/python/3.6/host64/lib/python3.6/lib-dynload/
- SPU: ' /nz/export/ae/languages/python/3.6/spu64/lib/python3.6/lib-dynload/
Lassen Sie den Dateinamen, wie er ist. Ändern Sie ihn nicht. Führen Sie anschließend die folgenden Befehle aus:
- Ausführen ' /nz/export/ae/languages/python/3.6/host64/bin/python3.6 -c '
import ssl
- Ausführen ' /nz/export/ae/languages/python/3.6/spu64/bin/python3.6 -c '
import ssl