Nosuchmoduleerror: Can't Load Plugin: Sqlalchemy. Dialects: Snowflake

I've installed all the necessary packages:

pip install --upgrade snowflake-sqlalchemy

I am running this test code from the snowflake docs:

from sqlalchemy import create_engine

engine = create_engine(
    'snowflake://{user}:{password}@{account}/'.format(
        user='<your_user_login_name>',
        password='<your_password>',
        account='<your_account_name>',
    )
)
try:
    connection = engine.connect()
    results = connection.execute('select current_version()').fetchone()
    print(results[0])
finally:
    connection.close()
    engine.dispose()

My output should be the snowflake version e.g. 1.48.0

But I get the error

NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:snowflake

(I am trying to run this in Anaconda)

2

6 Answers

I had similar issues when I tried to deploy code to an Azure Function App. sqlalchemy would find the module when I ran the code locally, but it failed to resolve the dialect on remote deployment and execution.

I resolved the issue there by running the following before calling create_engine:

from sqlalchemy.dialects import registry

...

registry.register('snowflake', 'snowflake.sqlalchemy', 'dialect')

I suspect that snowflake-sqlalchemy fails to self-register in certain environments.

1

This error generally appears due to a bad installation of the sqlalchemy package. Check the sqlalchemy.dialects folder to ensure that your dbapi folder exists.

Try to upgrade your sqlalchemy package:

pip install --upgrade sqlalchemy

pip install --upgrade snowflake-sqlalchemy worked for me

Try adding a couple additional imports:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from snowflake.sqlalchemy import URL

This fixed the issue for me.

I was deploying through serverless using pythonRequirements and has the same issue.

I removed the slim option and it worked, but I don't like it because it makes the zip file for my amazon lambda bigger. I just want to let others know there might be something wrong with the slim option.

Maybe you are using conda? Then

conda install --yes snowflake-sqlalchemy

Note, it also still requires snowflake-connector-python being installed as well!

2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Chloe Bennett

Chloe Bennett

Culture, Media & Entertainment Columnist

Chloe Bennett explores the intersection of pop culture, streaming entertainment, digital trends, and contemporary lifestyle. Her weekly commentary reaches thousands of culture enthusiasts.

Share this article
Twitter Facebook Pinterest