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