Installation du connecteur Python

Ce chapitre fournit des instructions pour installer le connecteur Snowflake pour Python. Le connecteur peut actuellement être installé dans les environnements Linux, macOS et Windows.

Les notes du développeur sont hébergées sur GitHub, avec le code source.

Dans ce chapitre :

Conditions préalables

Pour obtenir la liste des systèmes d’exploitation pris en charge par les clients Snowflake, voir Prise en charge par les systèmes d’exploitation.

Les logiciels suivants sont requis pour installer le connecteur Snowflake pour Python.

Python

Le connecteur Snowflake pour Python nécessite Python 3.6, 3.7, 3.8, or 3.9.

Pour vérifier votre version de Python :

python --version

Pour plus d’informations sur l’installation de la version requise de Python, voir :

Programme d’installation de pack Python et outils de configuration

Le connecteur Snowflake pour Python est installé par pip, un programme d’installation et un gestionnaire de pack standard Python.

Utilisez la version pip 19.0 ou ultérieure. Exécutez la commande suivante pour vous assurer que la version requise est installée :

python -m pip install --upgrade pip

Note

  • Sur macOS, utilisez virtualenv ou venv pour installer Python et le connecteur.

  • Si Python 2.7.x et Python 3.x sont installés, utilisez pip3 pour installer le connecteur avec Python 3.x.

Packages Python

Le connecteur Snowflake pour Python utilise de nombreux packages Python. Le connecteur prend en charge une plage de versions pour chaque package. (Pour plus de détails, voir Politique de gestion des dépendances pour le connecteur Python.)

Pour ces packages, Snowflake vous recommande d’utiliser les mêmes versions que celles utilisées par Snowflake lors des tests (les versions minimales prises en charge de ces packages). Snowflake vous recommande également d’éviter de remplacer les dépendances épinglées et d’éviter d’utiliser des applications susceptibles de remplacer les dépendances épinglées.

Les versions des packages qui ont été testées avec le connecteur sont documentées dans ces fichiers d’exigences. Chaque fichier d’exigences s’applique à une version spécifique de Python. Par exemple, requirements_36.reqs répertorie les versions qui ont été testées avec Python 3.6.

Chaque fichier d’exigences se compose de lignes comme les suivantes :

asn1crypto==1.3.0

L’élément à gauche du == est le nom du package et l’élément à droite du == est le numéro de version de ce package.

Pour obtenir des instructions sur l’utilisation de ces fichiers d’exigences pour installer les packages requis, voir Étape 1 : Installer le connecteur.

pyOpenSSL (macOS uniquement)

macOS (Yosemite et versions supérieures) comprend Python 2.7.x. Si vous utilisez Python 2.7.x et si votre version de pyOpenSSL est obsolète, vous pourriez rencontrer l’erreur suivante si vous n’utilisez pas virtualenv :

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'

Pour résoudre ce problème, utilisez l’une des deux options suivantes :

  • Utilisez virtualenv ou venv pour isoler les environnements d’exécution Python.

  • Définissez la variable d’environnement PYTHONPATH de sorte que le pyOpenSSL nouvellement installé soit utilisée à la place. Par exemple :

    export PYTHONPATH=/Library/Python/2.7/site-packages
    

Note

Les versions récentes et futures du connecteur Python ne prennent pas en charge Python 2.x. Si vous utilisez toujours Python 2.7 et une ancienne version du connecteur Python, Snowflake vous encourage à mettre à niveau le connecteur et Python.

OpenSSL et FFI (Linux uniquement)

Lorsque le connecteur Snowflake pour Python est installé, pip compile les codes natifs dans les packs sur les plateformes Linux. Afin de l’installer avec succès, installez les packages requis :

  • Pour CentOS, utilisez yum :

    sudo yum install -y libffi-devel openssl-devel
    
  • Pour Ubuntu, utilisez apt-get :

    sudo apt-get install -y libssl-dev libffi-dev
    

Les autres plateformes n’ont pas besoin d’installer les packages OS car ils sont regroupés dans les packages Python.

Étape 1 : Installer le connecteur

Le connecteur Snowflake pour Python est disponible dans PyPI. Un journal des modifications est disponible sur le site, ce qui vous permet de déterminer les modifications qui ont été apportées dans chaque version.

Lors de l’installation d’une version du connecteur Snowflake pour Python, Snowflake recommande d’installer les versions des bibliothèques dépendantes qui ont été testées avec cette version du connecteur.

Pour installer le connecteur Snowflake pour Python et les bibliothèques dépendantes :

  1. Déterminez la version du connecteur Snowflake pour Python que vous comptez installer.

  2. Pour installer les bibliothèques dépendantes, lancez la commande pip (ou pip3) et pointez sur le fichier d’exigences pour cette version du connecteur.

    Par exemple, supposons que la dernière version du connecteur Snowflake pour Python est 2.4.4 et que vous utilisez Python 3.6. Pour installer les bibliothèques dépendantes pour cette version du connecteur, exécutez la commande suivante :

    pip install -r https://raw.githubusercontent.com/snowflakedb/snowflake-connector-python/v2.4.4/tested_requirements/requirements_36.reqs

    Dans l’exemple ci-dessus, le chemin d’accès au fichier d’exigences spécifie la version du connecteur (« /v2.4.4/ »). Le nom du fichier d’exigences (« requirements_36.reqs ») spécifie la version de Python (Python 3.6).

    Note

    Si vous devez installer une version du connecteur Snowflake pour Python comprise entre la version 2.2.0 et la version 2.3.5, remplacez .reqs dans le nom de fichier d’exigences par .txt. Par exemple, utilisez requirements_36.txt au lieu de requirements_36.reqs.

    Si l’exécution de la commande pip retourne des erreurs de compilation, vous devriez peut-être installer le compilateur C et le package de développement Python pour construire certains des modules requis, tels que PyCryptoDome.

    Pour plus d’informations sur l’installation d’un compilateur C, voir http://gcc.gnu.org/ (Linux) ou https://developer.apple.com/xcode/ (macOS).

  3. Pour installer le connecteur, exécutez la commande suivante :

    pip install snowflake-connector-python==<version>
    

    version est la version du connecteur que vous voulez installer.

    Par exemple, pour installer la version 2.4.4 du connecteur Snowflake pour Python, exécutez :

    pip install snowflake-connector-python==2.4.4

    Note

    Si vous prévoyez Utilisation de la mise en cache de connexion pour réduire le nombre d’invites pour l’authentification — Facultatif, vous devez également installer le supplément secure-local-storage. Pour plus de détails, voir Utilisation de la mise en cache de connexion pour réduire le nombre d’invites pour l’authentification — Facultatif.

    Si vous prévoyez d’utiliser l’API de prise en charge pour les DataFrames Pandas, vous devez également installer le supplément pandas. Pour plus de détails, voir Utilisation de DataFrames Pandas avec le connecteur Python.

Étape 2 : Vérifier votre installation

Créez un fichier (par exemple validate.py) contenant le code exemple Python suivant qui se connecte à Snowflake et affiche la version Snowflake :

#!/usr/bin/env python
import snowflake.connector

# Gets the version
ctx = snowflake.connector.connect(
    user='<user_name>',
    password='<password>',
    account='<account_name>'
    )
cs = ctx.cursor()
try:
    cs.execute("SELECT current_version()")
    one_row = cs.fetchone()
    print(one_row[0])
finally:
    cs.close()
ctx.close()

Veillez à remplacer <nom_utilisateur>, <mot_de_passe>, et <nom_compte> par les valeurs correspondantes pour votre compte Snowflake.

Important

Le nom du compte est obligatoire. De plus, notez que votre nom de compte complet peut inclure des segments supplémentaires identifiant la région et la plate-forme cloud où votre compte est hébergé.

Exemples de noms de compte par région

Si votre localisateur de compte est xy12345:

Plate-forme Cloud / région .

Localisateur de compte . (avec des segments supplémentaires si nécessaire)

Amazon Web Services (AWS)

US Ouest (Oregon)

xy12345

US Est (Ohio)

xy12345.us-east-2.aws

US Est (Virginie du Nord)

xy12345.us-east-1

US Est (Gouvernement commercial - Virginie du Nord)

xy12345.us-east-1-gov.aws

Canada (Centre)

xy12345.ca-central-1.aws

EU (Irlande)

xy12345.eu-west-1

Europe (Londres)

xy12345.eu-west-2.aws

EU (Francfort)

xy12345.eu-central-1

Asie-Pacifique (Tokyo)

xy12345.ap-northeast-1.aws

Asie Pacifique (Mumbai)

xy12345.ap-south-1.aws

Asie-Pacifique (Singapour)

xy12345.ap-southeast-1

Asie-Pacifique (Sydney)

xy12345.ap-southeast-2

Google Cloud Platform (GCP)

US Central1 (Iowa)

xy12345.us-central1.gcp

Europe Ouest2 (Londres)

xy12345.europe-west2.gcp

Europe Ouest4 (Pays-Bas)

xy12345.europe-west4.gcp

Microsoft Azure

Ouest US 2 (Washington)

xy12345.west-us-2.azure

Est US 2 (Virginie)

xy12345.east-us-2.azure

US Gov Virginia

xy12345.us-gov-virginia.azure

Canada Central (Toronto)

xy12345.canada-central.azure

Europe de l’Ouest (Pays-Bas)

xy12345.west-europe.azure

Suisse Nord (Zurich)

xy12345.switzerland-north.azure

Asie du Sud-Est (Singapour)

xy12345.southeast-asia.azure

Australie Est (Nouvelle-Galles du Sud)

xy12345.australia-east.azure

Important

Si l’une des conditions suivantes est remplie, votre localisateur de compte est différent de la structure décrite dans les exemples ci-dessus :

Attention, n’incluez pas le nom de domaine de Snowflake (snowflakecomputing.com) dans le nom de votre compte. Snowflake ajoute automatiquement le nom de domaine à votre nom de compte pour créer la connexion requise.

Pour plus d’informations sur l’API Python Snowflake , voir Connecteur Python API, en particulier les méthodes snowflake.connector pour plus d’informations sur les paramètres de connecteur pris en charge.

Exécutez ensuite l’exemple de code. Par exemple, si vous avez créé un fichier nommé validate.py :

python validate.py

La version Snowflake (par ex. 3.5.0) doit être affichée.

Si vous voyez le message d’erreur suivant, cela signifie que votre installation Python ne possède probablement pas les correctifs de sécurité appropriés :

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.

Étape 3 : Spécifier un répertoire temporaire

Le connecteur Snowflake pour Python utilise un répertoire temporaire pour stocker les données pour le chargement et le déchargement (PUT, GET), ainsi que d’autres types de données temporaires.

Le répertoire temporaire peut être explicitement spécifié en définissant les variables d’environnement TMPDIR, TEMP ou TMP. Sinon, le répertoire temporaire par défaut du système d’exploitation (c.-à-d. /tmp, C:\temp) est utilisé.

Si le volume de répertoire temporaire par défaut du système n’est pas assez grand pour les données traitées, vous devez spécifier un autre répertoire en utilisant les variables d’environnement prises en charge.

Par exemple, à partir d’une fenêtre de terminal, exécutez la commande suivante :

export TMPDIR=/large_tmp_volume