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)
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.