Installieren des Python-Konnektors¶
Unter diesem Thema finden Sie Anweisungen zur Installation des Snowflake-Konnektors für Python. Dieser Konnektor kann derzeit in Linux-, macOS- und Windows-Umgebungen installiert werden.
Die Entwicklerhinweise werden zusammen mit dem Quellcode auf GitHub bereitgestellt.
Unter diesem Thema:
Voraussetzungen¶
Eine Liste der von Snowflake-Clients unterstützten Betriebssysteme finden Sie unter Betriebssystemunterstützung.
Die folgenden Softwarepakete werden benötigt, um den Snowflake-Konnektor für Python zu installieren.
Python¶
Der Snowflake-Konnektor für Python benötigt Python, Version 3.7 oder höher.
So prüfen Sie Ihre Python-Version:
python --version
Weitere Informationen zur Installation der erforderlichen Version von Python finden Sie unter:
Python-Paket-Installer und Setup-Tools¶
Der Snowflake-Konnektor für Python wird mit pip
installiert, einem Standard-Paketinstaller und -Manager für Python.
Verwenden Sie pip mit Version 19.0 oder höher. Führen Sie den folgenden Befehl aus, um sicherzustellen, dass die erforderliche Version installiert ist:
python -m pip install --upgrade pip
Bemerkung
Verwenden Sie unter macOS entweder
virtualenv
odervenv
, um Python und den Konnektor zu installieren.Wenn sowohl Python 2.7.x als auch Python 3.x installiert sind, verwenden Sie
pip3
, um den Konnektor mit Python 3.x zu installieren.
Python-Pakete¶
Der Snowflake-Konnektor für Python verwendet viele Python-Pakete. Der Konnektor unterstützt eine Reihe von Versionen für jedes Paket. (Weitere Details dazu finden Sie unter Richtlinie zur Verwaltung von Abhängigkeiten für den Python-Konnektor.)
Für diese Pakete empfiehlt Snowflake, dass Sie die gleichen Versionen verwenden, die Snowflake beim Testen verwendet hat (die minimal unterstützten Versionen dieser Pakete). Snowflake empfiehlt außerdem, dass Sie es vermeiden, angeheftete Abhängigkeiten zu übersteuern, und Anwendungen zu verwenden, die angeheftete Abhängigkeiten übersteuern könnten.
Die Paketversionen, die mit dem Konnektor getestet wurden, sind in diesen Anforderungsdateien dokumentiert. Jede Anforderungsdatei bezieht sich auf eine bestimmte Version von Python. Beispielsweise listet requirements_36.reqs
die Versionen auf, die mit Python 3.6 getestet wurden.
Jede Datei besteht aus Zeilen wie den folgenden:
asn1crypto==1.3.0
Das Element links von ==
ist der Name des Pakets, und das Element rechts von ==
ist die Versionsnummer dieses Pakets.
Eine Anleitung zur Verwendung dieser Anforderungsdateien für die Installation der erforderlichen Pakete finden Sie unter Schritt 1: Konnektor installieren.
pyOpenSSL (nur macOS)¶
macOS (Yosemite und höhere Versionen) enthält Python 2.7.x. Wenn Sie Python 2.7.x verwenden und Ihre pyOpenSSL
-Version veraltet ist, und Sie nicht virtualenv
verwenden, kann folgender Fehler auftreten:
File "/Library/Python/2.7/site-packages/snowflake/connector/ocsp_pyopenssl.py", line nn, in dump_publickey bio = OpenSSL.crypto._new_mem_buf() AttributeError: 'module' object has no attribute '_new_mem_buf'
Um dieses Problem zu beheben, verwenden Sie eine der folgenden beiden Optionen:
Verwenden Sie entweder
virtualenv
odervenv
, um die Python-Laufzeitumgebungen zu isolieren.Stellen Sie die Umgebungsvariable PYTHONPATH so ein, dass stattdessen das neu installierte
pyOpenSSL
verwendet wird. Beispiel:export PYTHONPATH=/Library/Python/2.7/site-packages
Bemerkung
Aktuelle und zukünftige Versionen des Python-Konnektors unterstützen Python 2.x nicht. Wenn Sie noch Python 2.7 und eine ältere Version des Python-Konnektors verwenden, empfiehlt Snowflake, sowohl den Konnektor als auch Python zu aktualisieren.
OpenSSL und FFI (nur Linux)¶
Wenn der Snowflake-Konnektor für Python installiert ist, kompiliert pip
native Codes in Pakete auf Linux-Plattformen. Damit die Installation erfolgreich ist, installieren Sie die erforderlichen Pakete:
Für CentOS verwenden Sie
yum
:sudo yum install -y libffi-devel openssl-devel
Für Ubuntu verwenden Sie
apt-get
:sudo apt-get install -y libssl-dev libffi-dev
Andere Plattformen benötigen die installierten Betriebssystempakete nicht, da sie in den Python-Paketen enthalten sind.
Schritt 1: Konnektor installieren¶
Der Snowflake-Konnektor für Python ist unter PyPI verfügbar. Auf der Website ist ein Änderungsprotokoll verfügbar, mit dem Sie die Änderungen ermitteln können, die in jedem Release implementiert wurden.
Wenn Sie eine Version des Snowflake-Konnektors für Python installieren, empfiehlt Snowflake, die Versionen der abhängigen Bibliotheken zu installieren, die mit dieser Version des Konnektors getestet wurden.
So installieren Sie den Snowflake-Konnektor für Python und die abhängigen Bibliotheken:
Bestimmen Sie die Version des Snowflake-Konnektors für Python, die Sie installieren möchten.
Um die abhängigen Bibliotheken zu installieren, führen Sie die
pip
(oderpip3
)-Befehl aus, und verweisen Sie auf die Anforderungsdatei für diese Version des Konnektors.Angenommen, die neueste Version des Snowflake-Konnektors für Python ist 2.9.0 und Sie verwenden Python 3.6. Um die abhängigen Bibliotheken für diese Version des Konnektors zu installieren, führen Sie den folgenden Befehl aus:
pip install -r https://raw.githubusercontent.com/snowflakedb/snowflake-connector-python/v2.9.0/tested_requirements/requirements_36.reqs
Im obigen Beispiel gibt der Pfad zur Anforderungsdatei die Version des Konnektors an („/v2.9.0/“). Der Name der Anforderungsdatei („requirements_36.reqs“) gibt die Version von Python (Python 3.6) an.
Bemerkung
Wenn Sie eine Version des Snowflake-Konnektors für Python installieren müssen, die zwischen 2.2.0 und 2.3.5 liegt, ersetzen Sie
.reqs
im Anforderungsdateinamen durch.txt
. Verwenden Sie beispielsweiserequirements_36.txt
anstelle vonrequirements_36.reqs
.Wenn die Ausführung von
pip
zu Kompilierungsfehlern führt, müssen Sie möglicherweise den C-Compiler und das Python-Entwicklungspaket installieren, um einige erforderliche Module zu erstellen, wie z. B. PyCryptoDome.Weitere Informationen zur Installation eines C-Compilers finden Sie unter http://gcc.gnu.org/ (Linux) oder https://developer.apple.com/xcode/ (macOS).
Um den Konnektor zu installieren, führen Sie den folgenden Befehl aus:
pip install snowflake-connector-python==<version>
wobei
version
die Version des Konnektors ist, den Sie installieren möchten.Um beispielsweise Version 2.9.0 des Snowflake-Konnektors für Python zu installieren, führen Sie Folgendes aus:
pip install snowflake-connector-python==2.9.0
Bemerkung
Wenn Sie Verwenden von Verbindungscaching zum Minimieren der Anzahl der Eingabeaufforderungen für die Authentifizierung – Optional planen, müssen Sie auch das Extramodul
secure-local-storage
installieren. Weitere Details dazu finden Sie unter Verwenden von Verbindungscaching zum Minimieren der Anzahl der Eingabeaufforderungen für die Authentifizierung – Optional.Wenn Sie planen, die API-Unterstützung von Pandas DataFrames zu verwenden, müssen Sie auch das Extramodul
pandas
installieren. Weitere Details dazu finden Sie unter Verwenden von Pandas DataFrames mit dem Python-Konnektor.
Schritt 2: Installation überprüfen¶
Erstellen Sie eine Datei (z. B. validate.py
), die den folgenden Python-Beispielcode enthält, um sich mit Snowflake zu verbinden und die Snowflake-Version anzuzeigen:
#!/usr/bin/env python import snowflake.connector # Gets the version ctx = snowflake.connector.connect( user='<user_name>', password='<password>', account='<account_identifier>' ) cs = ctx.cursor() try: cs.execute("SELECT current_version()") one_row = cs.fetchone() print(one_row[0]) finally: cs.close() ctx.close()
Vor Ausführung des Beispiels:
Ersetzen Sie
<account_identifier >
durch Ihren Kontobezeichner.Weitere Details und Beispiele dazu finden Sie unter Nutzungshinweise für die Verwendung des account-Parameters (für die connect-Methode).
Ersetzen Sie
<user_name >
und<passwort>
durch den Benutzernamen und das Kennwort, die Sie für die Verbindung mit Snowflake verwenden.
Weitere Informationen zur Snowflake-Python-API finden Sie unter Python-Konnektor-API, insbesondere unter den snowflake.connector
-Methoden, wo Sie Details zu den unterstützten Konnektorparametern finden.
Führen Sie als Nächstes den Beispielcode aus. Wenn Sie beispielsweise eine Datei mit dem Namen validate.py
erstellt haben:
python validate.py
Die Snowflake-Version (z. B. 3.5.0
) sollte angezeigt werden.
Wenn Sie die folgende Fehlermeldung erhalten, hat Ihre Python-Installation wahrscheinlich nicht die entsprechenden Sicherheitskorrekturen erhalten:
ERROR: The ssl package installed with your Python package - version n.n.n - does not have the required security fixes. Upgrade to 3.6.0 or higher.
Schritt 3: Temporäres Verzeichnis angeben¶
Der Snowflake-Konnektor für Python verwendet ein temporäres Verzeichnis, um Daten zum Laden und Entladen (PUT, GET) sowie andere Arten von temporären Daten zu speichern.
Das temporäre Verzeichnis kann explizit durch Setzen der Umgebungsvariablen TMPDIR
, TEMP
oder TMP
angegeben werden, andernfalls wird das standardmäßige temporäre Verzeichnis des Betriebssystems (d. h. /tmp
, C:\temp
) verwendet.
Wenn das standardmäßige temporäre Verzeichnis des Systems nicht genug Speicherplatz für die zu verarbeitenden Daten bietet, sollten Sie über eine der unterstützten Umgebungsvariablen ein anderes Verzeichnis angeben.
Führen Sie beispielsweise in einem Terminalfenster den folgenden Befehl aus:
export TMPDIR=/large_tmp_volume