Installing the Python Connector¶
This topic provides instructions for installing the Snowflake Connector for Python. The connector can currently be installed in Linux, macOS, and Windows environments.
The developer notes are hosted on GitHub, along with the source code.
In this Topic:
The following software packages are required to install the Snowflake Connector for Python.
The Snowflake Connector for Python requires either Python 2.7.9 (or higher) or 3.5.0 (or higher). To verify your version of Python:
For more information about installing the required version of Python, see:
Python Package Installer and Setup Tools¶
The Snowflake Connector for Python is installed by
pip, a standard Python package installer and manager.
The latest version of
pip is required to install the connector. Execute the following command to ensure the required version is installed:
python -m pip install --upgrade pip
On macOS, use either
pyvenvto install Python and the connector.
If both Python 2.7.x and Python 3.5.x are installed, use
pip3to install the connector with Python 3.5.x.
pip3) is installed in the system directory or a shared directory, use
sudoto run the above command, which ensures you have the privileges required to write/copy files to the directory.
pyOpenSSL (macOS only)¶
macOS (Yosemite and higher versions) includes Python 2.7.x, which can be used with the Snowflake Connector for Python. However, if your version of
pyOpenSSL is out-of-date,
you may encounter the following error if you are not using
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'
To fix this issue, use one of the following two options:
pyvenvto isolate the Python runtime environments.
Set the PYTHONPATH environment variable so that the newly-installed
pyOpenSSLis used instead. For example:
OpenSSL and FFI (Linux only)¶
When the Snowflake Connector for Python is installed,
pip compiles native codes in the packages on Linux platforms. In order to install it successfully, install the required
For CentOS, use
sudo yum install -y libffi-devel openssl-devel
For Ubuntu, use
sudo apt-get install -y libssl-dev libffi-dev
Other platforms do not need the OS packages installed because they are bundled in the Python packages.
Step 1: Install the Connector¶
The Snowflake Connector for Python is available in PyPI. A change log is available on the site, so you can determine the changes that have been implemented in each release.
To install the connector, execute the following command:
pip install --upgrade snowflake-connector-python
pip automatically installs all required modules.
As mentioned earlier, you may need to use
pip3), which ensures you have the privileges required to write/copy files.
pipreturns compilation errors, you may need to install the C compiler and Python development package to build some of the required modules, such as PyCryptoDome.
Step 2: Verify Your Installation¶
Create a file (e.g.
validate.py) containing the following Python sample code, which connects to Snowflake and displays the Snowflake version:
#!/usr/bin/env python import snowflake.connector # Gets the version ctx = snowflake.connector.connect( user='<your_user_name>', password='<your_password>', account='<your_account_name>' ) cs = ctx.cursor() try: cs.execute("SELECT current_version()") one_row = cs.fetchone() print(one_row) finally: cs.close() ctx.close()
Make sure to replace
<your_account_name> with the appropriate values for your Snowflake account.
account is required. In addition, depending on the cloud platform (AWS or Azure) and region where your account is hosted, the full account name may
require additional segments:
Account name details
For example, if your account name is
Full Account Name
US West (Oregon)
US East (N. Virginia)
Asia Pacific (Singapore)
Asia Pacific (Sydney)
East US 2
US Gov Virginia
If either of the following conditions is true, your account name is different than the structure described above:
Also, note that you do not include the Snowflake domain name (
snowflakecomputing.com) as part of your account name. Snowflake automatically appends
the domain name to your account name to create the required connection.
Next, execute the sample code. For example, if you created a file named
The Snowflake version (e.g.
3.5.0) should be displayed.
If you see the following error message, your Python installation likely does not have the appropriate security fixes:
ERROR: The ssl package installed with your Python package - version n.n.n - does not have the required security fixes. Upgrade to 2.7.9/3.5.0 or higher.
Step 3: Specify a Temporary Directory¶
The temporary directory can be explicitly specified by setting the
TMP environment variables, otherwise the operating system’s default temporary
C:\temp) is used.
If the system’s default temporary directory volume is not large enough for the data being processed, you should specify a different directory using any of the supported environment variables.
For example, from a terminal window, execute the following command: