Mac OS El Capitan下Django连接PostgreSQL启动服务报错问题排查
问题根因
你使用的是 macOS El Capitan(版本号10.11),错误日志中提示缺失的____chkstk_darwin符号是 macOS 10.14 Mojave 及以上版本才加入系统库的,当前系统的/usr/lib/libSystem.B.dylib不包含该符号。
你安装的 psycopg2-binary 2.9.1 是针对更高版本 macOS 编译的预发布包,其依赖的libcrypto.1.1.dylib调用了该不存在的符号,导致模块加载失败,进而触发Django配置错误。
解决方案
- 第一步:卸载当前环境中所有psycopg2相关组件,执行命令:
pipenv uninstall psycopg2-binary psycopg2-pool postgres - 第二步:安装兼容旧系统的psycopg2版本,推荐优先使用源码编译安装,避免预编译包的系统兼容问题。首先确保已安装Xcode命令行工具,未安装可执行
xcode-select --install完成安装,之后执行命令:pipenv install psycopg2==2.8.6 --no-binary :all: - 第三步:验证安装结果,激活虚拟环境后执行
python -c "import psycopg2",无报错即说明组件安装正常,再重新启动Django服务即可。
备选方案
如果源码编译安装失败,可直接安装对应版本的预编译包:pipenv install psycopg2-binary==2.8.6
该版本的预编译包适配 macOS El Capitan 系统。
内容的提问来源于stack exchange,提问作者Mohammed Baashar
相关产品推荐
相关产品推荐

