PyCharm控制台与终端SQLite版本不一致致Airflow报错如何解决

问题说明
运行Airflow调度器时报错:
airflow.exceptions.AirflowConfigException: error: sqlite C library version too old (3.7.17 < 3.15.0)
已安装最新版SQLite但报错未消失,排查发现PyCharm控制台与系统终端调用的SQLite版本不一致。
解决方案
问题核心原因是PyCharm启动时未完全继承终端的环境变量,默认加载了系统自带的旧版SQLite动态库,按以下步骤修复即可:
- 先在系统终端确认基准环境正常
执行以下命令确认终端下的SQLite版本、Python绑定的SQLite版本都满足≥3.15.0的要求:# 查看系统sqlite3路径和版本 which sqlite3 sqlite3 --version # 查看Python绑定的sqlite版本 python3 -c "import sqlite3; print(sqlite3.sqlite_version)" - 对齐PyCharm和终端的Python解释器
打开PyCharm的Settings > Project > Python Interpreter设置页,添加解释器时选择System Interpreter,路径填终端执行which python3输出的路径,不要用PyCharm自动创建的虚拟环境或单独安装的解释器。 - 配置PyCharm的库加载优先级
如果切换解释器后版本仍不对,打开对应Airflow启动项的Run/Debug Configurations,在环境变量配置中新增规则:- Linux/macOS:添加
LD_LIBRARY_PATH变量,值为新版SQLite的lib目录路径(默认编译安装路径一般为/usr/local/lib),将该路径放在原有变量值的最前面保证加载优先级 - Windows:在
PATH变量最前面追加新版SQLite的bin目录路径
- Linux/macOS:添加
- 修复验证
在PyCharm的Python控制台执行import sqlite3; print(sqlite3.sqlite_version),确认输出版本≥3.15.0后,重启Airflow调度器即可正常运行。
内容的提问来源于stack exchange,提问作者mafia
相关产品推荐
相关产品推荐

