Jupyter Notebook连接Snowflake遇ImportError,升级依赖失败求助
解决Jupyter Notebook连接Snowflake时的
_rfc_1738_quote导入错误 问题重现
尝试从snowflake.sqlalchemy导入URL时触发以下错误:
--------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-12-3b4f5d455df9> in <module> 1 from sqlalchemy import create_engine ----> 2 from snowflake.sqlalchemy import URL 3 import sqlalchemy as db 4 import pandas as pd 5 ~\AppData\Local\Continuum\anaconda3\lib\site-packages\snowflake\sqlalchemy\__init__.py in <module> 56 VARIANT, 57 ) ---> 58 from .util import _url as URL 59 from .version import VERSION 60 ~\AppData\Local\Continuum\anaconda3\lib\site-packages\snowflake\sqlalchemy\util.py in <module> 11 from urllib.parse import quote_plus 12 ---> 13 from sqlalchemy.engine.url import _rfc_1738_quote 14 15 ImportError: cannot import name '_rfc_1738_quote'
尝试安装snowflake-sqlalchemy==1.4.3时提示版本不存在:
ERROR: Could not find a version that satisfies the requirement snowflake-sqlalchemy==1.4.3 (from versions: 1.0.7, 1.0.8, 1.0.9, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.1.9, 1.1.10, 1.1.11, 1.1.12, 1.1.13, 1.1.14, 1.1.15, 1.1.16, 1.1.17, 1.1.18, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.3.1, 1.3.2, 1.3.3, 1.3.4) ERROR: No matching distribution found for snowflake-sqlalchemy==1.4.3
问题原因
这个错误源于SQLAlchemy版本与snowflake-sqlalchemy版本不兼容:
_rfc_1738_quote是SQLAlchemy 1.3.x及更早版本中的私有函数,在SQLAlchemy 1.4+中被移除。- 旧版本的snowflake-sqlalchemy(如你列出的1.3.4及以下)依赖这个函数,若环境中安装了SQLAlchemy 1.4+,就会触发导入错误。
- 你尝试安装的
snowflake-sqlalchemy==1.4.3并非公开可用版本,因此pip无法找到。
解决方案
方案1:安装兼容的版本组合
卸载现有冲突包,安装SQLAlchemy 1.3.x与snowflake-sqlalchemy 1.3.4的兼容组合:
- 卸载现有包:
pip uninstall -y snowflake-sqlalchemy sqlalchemy
- 安装指定版本:
pip install sqlalchemy==1.3.24 snowflake-sqlalchemy==1.3.4
方案2:升级到支持高版本SQLAlchemy的snowflake-sqlalchemy
如果需要使用SQLAlchemy 1.4+或2.0,先升级pip,再安装最新版snowflake-sqlalchemy(确保它适配当前SQLAlchemy版本):
- 升级pip:
pip install --upgrade pip
- 卸载现有包:
pip uninstall -y snowflake-sqlalchemy
- 安装最新版snowflake-sqlalchemy:
pip install snowflake-sqlalchemy --upgrade
- 验证版本兼容性:安装完成后,运行以下命令确认依赖匹配:
import sqlalchemy import snowflake.sqlalchemy print(f"SQLAlchemy版本: {sqlalchemy.__version__}") print(f"snowflake-sqlalchemy版本: {snowflake.sqlalchemy.VERSION}")
方案3:使用Snowflake官方连接器替代SQLAlchemy(可选)
如果不需要SQLAlchemy,直接使用Snowflake的Python连接器连接:
- 安装连接器:
pip install snowflake-connector-python
- 连接示例:
import snowflake.connector conn = snowflake.connector.connect( user='你的用户名', password='你的密码', account='你的账户名', warehouse='你的仓库', database='你的数据库', schema='你的模式' )
内容的提问来源于stack exchange,提问作者Bhavana Addagulla
相关产品推荐
相关产品推荐

