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 3.6, 3.7, 3.8, or 3.9.

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 oder venv, 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 oder venv, 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:

  1. Bestimmen Sie die Version des Snowflake-Konnektors für Python, die Sie installieren möchten.

  2. Um die abhängigen Bibliotheken zu installieren, führen Sie die pip (oder pip3)-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.4.6 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.4.6/tested_requirements/requirements_36.reqs

    Im obigen Beispiel gibt der Pfad zur Anforderungsdatei die Version des Konnektors an („/v2.4.6/“). 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 beispielsweise requirements_36.txt anstelle von requirements_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).

  3. 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.4.6 des Snowflake-Konnektors für Python zu installieren, führen Sie Folgendes aus:

    pip install snowflake-connector-python==2.4.6

    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:

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